C 数组到 Char 指针

标签 c arrays pointers

我需要一些关于指针和数组的指导

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/

相关文章:

c++ - 在 C++ 中返回指向具有普通函数和 void 函数的动态分配数组的指针

c - 在 C 中迭代多维 Lua 表

c - 我使用 getifaddrs 得到错误的 IP 地址

python - Numpy savez/load 数千个数组,但不是一步完成

c++ - "Stack overflow"错误。可能指针不在列表中

c - 局部结构和指针

c - 如何使用 int ** ptr 释放二维数组分配的内存

c - 访问负索引处的数组元素

c - 调用返回 int 的函数后,在非 void 函数中调用 return 的结果是什么?

xml - 在 JAXB 中编码数组