我对 C 还很陌生,开始使用指针。我还没有找到将数组分配给多个变量的方法。
我理想中想要的是:
char myArray[10] = "test";
char (*p)[10] = &myArray;
char anotherArray[10];
anotherArray = *p;
这不起作用,我不知道为什么。
我找到了一种使用 for 循环“复制”数组的方法,
for (int i = 0; i < 10; i++)
{
anotherArray[i] = myArray[i];
}
我不知道这样做是否是好的做法,以及是否有更简单的方法。
数组内容不应该改变,所以我只想有一个简单的方法来做到这一点:
firstArr[size] = "content";
secondArr = firstArr;
你不能在 C 中分配数组,既不能单独分配,也不能通过取消引用数组指针来分配,语法根本不允许这样做。
数组通常用以下方式复制memcpy
。如果它们是字符串,您还可以使用strcpy
,它会向上复制,直到找到字符串空终止符。
在你的例子中,这将是strcpy(anotherArray, *p);
。但要使用类型的数组指针char (*)[10]
这是一种有点奇怪的做法,使用指向数组第一个元素的指针更为常见。我建议您将代码更改为:
#include <stdio.h>
#include <string.h>
int main(void)
{
char input[10] = "test";
char* p = input;
char anotherArray[10];
strcpy(anotherArray, p);
puts(anotherArray);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)