将没有长度的指针作为目的地传递给memcpy是否合法?

问题描述 投票:0回答:1

我想知道我可以使用不带字符的char指针作为memcpy中的目标。示例:我想将具有特定大小的已定义长度的char数组中的数据复制到另一个数组中,但是我想将其定义为没有特定大小的指针。

char * ptr_1;
char arr[4] = "Data";
memcpy(ptr_1, arr, 4); // IS it allowed to do this?
c pointers memcpy
1个回答
0
投票

不,你不能那样做。如果这样做,它将调用未定义的行为,因为ptr_1指向的地址是行列式的,并且您不拥有它。

您既可以分配静态存储空间来复制结果,也可以动态分配存储空间。

© www.soinside.com 2019 - 2024. All rights reserved.