首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指针和字符数组

指针和字符数组
EN

Stack Overflow用户
提问于 2012-08-18 03:43:41
回答 2查看 789关注 0票数 2

我有一个指向字符数组的指针:

代码语言:javascript
复制
space=(char**)calloc(100000,sizeof(char*));
for(i=0;i<100000;i++){
    space[i]=(char*)calloc(1,sizeof(char));
}

这样当我使用下面的命令时

代码语言:javascript
复制
printf("%s\n",space[0]);

我得到了"a b c d e"

我想将"a b c d e"赋值给

代码语言:javascript
复制
char c[10];

这样的话

printf("%s",c)收益率

代码语言:javascript
复制
"a b c d e"

但当我尝试的时候

代码语言:javascript
复制
c=space[0]

我得到以下错误:

代码语言:javascript
复制
incompatible types in assignment

我做错了什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-08-18 03:48:01

首先,您需要分配足够的空间来在位置空间中保存整个字符串。当前您正在分配单个字符。这样做之后,可以使用strcpy()将字符串复制到新分配的缓冲区中。

代码语言:javascript
复制
space=(char**)calloc(100000,sizeof(char*));
...
space[0]=(char*)calloc(10,sizeof(char));
strcpy(space[0], "a b c d e");

PS:在分配给新字符串之前,不要忘记释放()0空间中之前分配的任何字符串。或者,您可以改用realloc()。

票数 2
EN

Stack Overflow用户

发布于 2012-08-18 12:17:34

c[0]的类型为char *。您要么需要执行c[0][0],要么执行(char) c

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12012214

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档