Hello Feixy

在结构体中定义字符串的成员的时候要注意
定义成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;

所以最好使用字符数组,或者通过指针使用动态内存。

posted on 2015-07-22 18:14  飞翔雨  阅读(1755)  评论(0编辑  收藏  举报