C Array to Char指针

1 c arrays pointers

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

char *ptr;
char Array1[20];

ptr = malloc(sizeof(Array1));
Run Code Online (Sandbox Code Playgroud)

现在怎样才能将整个Array1放入ptr?

我试过strcat,strncat,strcpy.我也尝试了一个循环然后使用提到的函数并添加数组的每个元素,什么也没有

int a = 0
while ( a <= sizeof(Array1) )
{
     strcpy(ptr, Array1[a]);
     a++; 
}
Run Code Online (Sandbox Code Playgroud)

我真的需要知道如何将数组转换为指针.

hmj*_*mjd 9

用途memcpy():

ptr = malloc(sizeof(Array1));
if (ptr)
{
    memcpy(ptr, Array1, sizeof(Array1));
}
Run Code Online (Sandbox Code Playgroud)

str*系列函数依赖于的空终止字符的存在.

如果Array1确实包含一个字符串,由空字符终止,那么strcpy()strncpy()将正常运行. strcat()要求目标缓冲区中存在空终止符以及源缓冲区才能正常运行.

如果Array1不包含空终止字符串,则不要使用这些str*函数,memcpy()而是使用.