各位麻烦看一下怎么输不出来结构体成员的值?谢谢了
struct qq
{
char name[];
int age;
};
int main(int argc, char* argv[])
{
qq q;
strcpy(q.name, "张三 ");
q.age=22;
cout < <q.name < <endl;//怎么不能输出张三啊?前面不是已经赋值了吗?
cout < <q.age < <endl;
cin.get();
return 0;
}
[解决办法]
struct qq
{
char name[];//只是个空指针,没有分配空间,strcpy(q.name, "张三 ")会出错
int age;
};
-----------------------------------------
struct qq
{
char name[20];//这样试一下
int age;
};
[解决办法]
或者动态分配空间:
#include <iostream.h>
struct qq
{
char *name;
int age;
};
int main(int argc, char* argv[])
{
qq q;
q.name=(char*)malloc(20);
strcpy(q.name, "张三 ");
q.age=22;
cout < <q.name < <endl;
cout < <q.age < <endl;
free(q.name);
cin.get();
return 0;
}