我有一个指向字符数组的指针:
space=(char**)calloc(100000,sizeof(char*));
for(i=0;i<100000;i++){
space[i]=(char*)calloc(1,sizeof(char));
}这样当我使用下面的命令时
printf("%s\n",space[0]);我得到了"a b c d e"
我想将"a b c d e"赋值给
char c[10];这样的话
printf("%s",c)收益率
"a b c d e"但当我尝试的时候
c=space[0]我得到以下错误:
incompatible types in assignment我做错了什么?
发布于 2012-08-18 03:48:01
首先,您需要分配足够的空间来在位置空间中保存整个字符串。当前您正在分配单个字符。这样做之后,可以使用strcpy()将字符串复制到新分配的缓冲区中。
space=(char**)calloc(100000,sizeof(char*));
...
space[0]=(char*)calloc(10,sizeof(char));
strcpy(space[0], "a b c d e");PS:在分配给新字符串之前,不要忘记释放()0空间中之前分配的任何字符串。或者,您可以改用realloc()。
发布于 2012-08-18 12:17:34
c[0]的类型为char *。您要么需要执行c[0][0],要么执行(char) c。
https://stackoverflow.com/questions/12012214
复制相似问题