再次求教
- C/C++ code
#include <stdio.h>typedef struct { char * a; int b; int c; } tnode;tnode *getmemory(int);main(){ tnode *tn = getmemory(3); tn = {{"11111",3,4},{"dasds",3,4},{"dasda",5,6}}; putchar( *(tn->a) ); free(tn); tn = NULL; getchar();}tnode *getmemory(int num){ tnode *tn = (tnode *)malloc(sizeof(tnode)*num); return tn;}
这段代码出错,问题是下面这句话,看看出错再扫描地方,谢谢大家啦
- C/C++ code
tn = {{"11111",3,4},{"dasds",3,4},{"dasda",5,6}};
[解决办法]
分别赋值,另外,tnode里的a也要分配内存
[解决办法]
tn = {{"11111",3,4},{"dasds",3,4},{"dasda",5,6}};
不能这样赋值的 分开分步赋值
[解决办法]
[解决办法]
tn = {{"11111",3,4},{"dasds",3,4},{"dasda",5,6}};
初始化的时候可以这样子, 赋值的时候不能这样!
struct { char * a; int b; int c; } tnode;
里边的a还是个空指针呢? 要不定义为数组 要么在分配内存的时候也捎带着给new出来空间
[解决办法]
- C/C++ code
#include <stdio.h>typedef struct { char * a; int b; int c; } tnode;main(){ tnode tn[3] = {{"11111",3,4},{"dasds",3,4},{"dasda",5,6}}; putchar( tn[1]->a[0]) ); getchar();}