有没有办法在C中将数组的所有元素复制到另一个元素中,而不解析要复制的数组的所有元素?我可以使用指针吗?因为我知道一个函数可以自动地取一个数组的元素只是说第一个元素的索引,所以可能(?)我可以做类似的事情......
例如,如果我有这两个数组:
int array[10];
int tocopy[3];
Run Code Online (Sandbox Code Playgroud)
我说的是:
array[0] = tocopy
Run Code Online (Sandbox Code Playgroud)
它自动填充数组[1]和数组[2]
这可能吗?
您可以使用memmove()或,如果数组不重叠,memcpy():
void *memmove(void *dest, const void *src, size_t n);
void *memcpy(void *dest, const void *src, size_t n);
Run Code Online (Sandbox Code Playgroud)
例如:
memmove(array, tocopy, sizeof(tocopy);
Run Code Online (Sandbox Code Playgroud)
就像这样做:
array[0] = tocopy[0];
array[1] = tocopy[1];
array[2] = tocopy[2];
Run Code Online (Sandbox Code Playgroud)
正如评论中所建议的那样,在使用这些函数时也要注意不要超出数组边界,即:在为数组分配的内存之外读取或写入.