将指针数组复制到另一个指针

时间:2015-08-04 07:47:05

标签: c

如何将指针数组复制到另一个指针。

我这样做的方法

int *ptr2[(i-1)*100];
int *ptr1;

ptr1=&ptr2[(i-1)*100];

复制的有效方法是什么,这样可以减少cpu周期。

2 个答案:

答案 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));