读书人

各位麻烦看一下如何输不出来结构体成员

发布时间: 2012-04-05 12:42:40 作者: rapoo

各位麻烦看一下怎么输不出来结构体成员的值?谢谢了
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;
}

读书人网 >C++ Builder

热点推荐