將字符串值放入「字符串向量結構」中有問題。 最簡單的可重複的代碼如下:C++將字符串放入字符串向量結構
#include <vector>
#include <string>
#include <iostream>
using namespace std;
struct ttt {
string name;
unsigned int ID;
vector<unsigned int> numList;
};
int main() {
vector<ttt> b;
b.reserve(3);
b[0].ID = 1;
b[0].numList.push_back(3);
b[0].numList.push_back(4);
string dd ("Desk");
b[0].name = dd;
cout << b[0].ID << b[0].name << b[0].numList[2] << endl;
return 0;
}
代碼編譯,但它沒有把「臺」字符串轉換成B [0] .name和一個結構元件。分割錯誤在現場發生。
我也在線下試過,但都失敗了。
b[0].name.push_back(dd);
b[0].name += dd;
我的編譯器是GCC G ++ 4.7.7 20120313, 和我下面使用編譯命令。
/usr/bin/g++ --std=gnu++0x -Werror -Wall -Wextra -Warray-bounds
任何幫助將深表謝意,真誠。
是什麼代碼重現?編譯器錯誤? – Rakete1111
歡迎來到Stack Overflow!這聽起來像你可能需要學習如何使用調試器來遍歷代碼。使用一個好的調試器,您可以逐行執行您的程序,並查看它與您期望的偏離的位置。如果你打算做任何編程,這是一個重要的工具。進一步閱讀:** [如何調試小程序](http://ericlippert.com/2014/03/05/how-to-debug-small-programs/)** –
來吧,他提供了一個[ mcve],他的編譯器命令行,並表示他得到了段錯誤。讓我們在這裏輕鬆投票。 –