我正在尝试在 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");
这将分配两个连续的数组,每个数组包含 14 个 char
,之后静态字符串的内容将被复制到它们中。
关于c - 如何在 C 中创建字符串数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1088622/