在结构体中定义字符串的成员的时候要注意
定义成string有时候,在某些程序中给成员赋值会崩溃,但是不确定到底什么情况会崩溃。
运行报错如下:
Program received signal SIGSEGV, Segmentation fault. 0xb665489c in std::string::assign(char const*, unsigned int) () from /usr/lib/arm-linux-gnueabihf/libstdc++.so.6
typedef struct { string name; // 不要这样,有时候会崩溃 char name2[64]; // 可以这样 char* pname; // 可以这样 int age; }Student;
所以最好使用字符数组,或者通过指针使用动态内存。