我需要一些关于指针和数组的指导
char *ptr;
char Array1[20];
ptr = malloc(sizeof(Array1));
现在如何将整个 Array1 放入 ptr 中??
我试过 strcat、strncat、strcpy。我还尝试了一个循环,然后使用提到的函数并添加数组的每个元素,什么都没有
int a = 0
while ( a <= sizeof(Array1) )
{
strcpy(ptr, Array1[a]);
a++;
}
我真的需要知道如何将数组变成指针。
最佳答案
使用memcpy()
:
ptr = malloc(sizeof(Array1));
if (ptr)
{
memcpy(ptr, Array1, sizeof(Array1));
}
str*
函数族依赖于空终止符的存在。
如果 Array1
确实包含一个以空字符结尾的字符串,则 strcpy()
和 strncpy()
会正常运行。
strcat()
需要目标缓冲区和源缓冲区中存在空终止符才能正常运行。
如果 Array1
不包含以空字符结尾的字符串,则不要使用 str*
函数,而是使用 memcpy()
。
关于C 数组到 Char 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23110859/