如何将指针数组复制到另一个指针。
我这样做的方法
int *ptr2[(i-1)*100];
int *ptr1;
ptr1=&ptr2[(i-1)*100];
复制的有效方法是什么,这样可以减少cpu周期。
答案 0 :(得分:2)
如果您需要复制(复制)ptr2
,则需要使用正确的类型声明ptr1
,为ptr1
数组分配空间,然后复制ptr2
' s内容到ptr1
#include <malloc.h>
#include <string.h>
int *ptr2[(i-1)*100];
int **ptr1; // a pointer to a pointer to an int
ptr1 = malloc(sizeof(ptr2));
memcpy(ptr1, ptr2, sizeof(ptr2));
注意:这是一个例子。始终确保malloc
在使用之前已分配了内存块,并在不再需要时将其释放(使用free
)
另一方面,如果您只想为ptr2
int *ptr2[(i-1)*100];
int **ptr1; // a pointer to a pointer to an int
ptr1 = ptr2;
答案 1 :(得分:0)
您可以使用memcpy
复制值 -
int *ptr2[(i-1)*100];
int **ptr1;
prt1=malloc(sizeof(ptr2)); //also remember to free allocated memory.
memcpy(ptr1,ptr2,sizeof(ptr2));