我正在尝试在C中创建字符串数组。如果使用此代码:
char (*a[2])[14]; a[0]="blah"; a[1]="hmm"; gcc给我“警告:来自不兼容指针类型的赋值”。正确的方法是什么?
编辑:我很好奇为什么这应该给编译器警告,因为如果我这样做printf(a[1]);,它将正确打印“ hmm”。
如果您不想更改字符串,则只需执行
const char *a[2]; a[0] = "blah"; a[1] = "hmm"; 当您这样做时,将为分配两个指针的数组const char。然后,将这些指针设置为静态字符串"blah"和的地址"hmm"。
如果您确实希望能够更改实际的字符串内容,则必须执行以下操作
char a[2][14]; strcpy(a[0], "blah"); strcpy(a[1], "hmm"); 这将分配两个连续的数组,char每个数组14 s,之后将静态字符串的内容复制到其中。 问题来源于stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。