gpt4 book ai didi

c - 两个不同指针之间的 memcpy()

转载 作者:行者123 更新时间:2023-11-30 15:16:20 24 4
gpt4 key购买 nike

使用 memcpy(),我想将一个数组的部分复制到另一个数组,其中源数组是双指针数组。是否有解决方法可以在不更改双指针的情况下实现此类复制过程?

int **p;
p= malloc(sizeof(int *));
p= malloc(5 * sizeof(int));

int *arr;
arr= malloc(5 * sizeof(int));

for(i = 0; i < 5; i++){
p[i] = 1;
}

memcpy(arr, (2+p) , 3*sizeof(int)); // I want to start copying 3 elements starting from the third position of the src.

最佳答案

这是一个简单的示例 -

int main(void){
int **p;
int *arr,i;
p= malloc(sizeof(int *)); // allocate memory for one int *
p[0]=malloc(5*sizeof(int)); // allocate memory to int *
for(i = 0; i < 5; i++){
p[0][i] = i+1; // assign values
}
arr= malloc(5 * sizeof(int)); // allocate memory to arr
memcpy(arr,&p[0][2],3*sizeof(int)); // copy last 3 elements to arr

for( i=0;i<3;i++){
printf("%d",arr[i]); // print arr
}
free(p[0]);
free(p);
free(arr);

}

Output

关于c - 两个不同指针之间的 memcpy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156123/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com