定义了char * id[100];
初始化为 :
for(int i=0;i<100;i++)
id[i]=NULL;
使用的语句如下:
char name[]="chian";
strcpy(id[i],name);
这样使用可以吗?是不是初始化的时候错了!
koutyayh的两个回复都不正确,aiyinsitan的回复是正确的,初始化时你把它们都赋NULL了,后面又没给它们分配内存,所以必然为会出问题。
如果是C语言这样用就可以了。
char name[]="chian";
id[i] = (char *) malloc(strlen(name) + 1);
strcpy(id[i],name);
用完后
free(id[i]);
如果是C++,也一样:
char name[]="chian";
id[i] = new char[strlen(name) + 1];
strcpy(id[i],name);
delete [] id [i];
将BTree::BTree()中的
id[i]="\0";
改为 *id[i]=\0;