Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 将字符串存储在向量中会导致错误_C++_String_Vector - Fatal编程技术网

C++ 将字符串存储在向量中会导致错误

C++ 将字符串存储在向量中会导致错误,c++,string,vector,C++,String,Vector,我试图将从文件中读取的字符串存储在std::vector中,但我遇到了一个奇怪的错误 所以我有一个容器: std::vector<std::string> m_Strings; 即使向量是空的,当我插入第一个字符串时,向量大小将调整为容纳8个字符串,索引0处的字符串包含随机字符,索引1处的字符串包含正确的单词,其他索引包含无效指针 你知道这是什么原因吗 编辑:在本例中,我正在读取字符串“DIRECTIONAL_LIGHT”,因此它适合刚刚更改的字符[100]字符[100]到std:

我试图将从文件中读取的字符串存储在std::vector中,但我遇到了一个奇怪的错误

所以我有一个容器:

std::vector<std::string> m_Strings;
即使向量是空的,当我插入第一个字符串时,向量大小将调整为容纳8个字符串,索引0处的字符串包含随机字符,索引1处的字符串包含正确的单词,其他索引包含无效指针

你知道这是什么原因吗


编辑:在本例中,我正在读取字符串“DIRECTIONAL_LIGHT”,因此它适合刚刚更改的
字符[100]

字符[100]
std::字符串字和错误消失。

刚刚更改了字符[100]
std::字符串字
错误消失。

发布后,您是否在
word
中读取了超过99个字符?是否有理由读取字符而不是字符串?这很容易导致缓冲区溢出。。。这可能就是问题所在。根据斯塔克和诺顿教授的提示:让我们看看我们是否能一箭双雕:如果你改变
char-word[100],事情会变得更好吗
std::字符串字?发布一篇文章您是否在
word
中读取了超过99个字符?是否有理由读取字符而不是字符串?这很容易导致缓冲区溢出。。。这可能就是问题所在。根据斯塔克和诺顿教授的提示:让我们看看我们是否能一箭双雕:如果你改变
char-word[100],事情会变得更好吗
std::字符串字?一般来说,当字符串长度不确定时,应使用
std::string
malloc
new
,以便未知用户不会导致缓冲区溢出,恶意用户也不会。一般来说,当字符串长度不确定时,您应该使用
std::string
malloc
new
,这样未知用户不会导致缓冲区溢出,恶意用户也不会。
ifstream inStream;
char word[100];
//[...]
inStream >> word;
m_Strings.push_back(word);