我有一个整数数组:
int num[20] = {1,1,5,5,1,1,5,9,2,2,6,1,1,2,5,5,1,3,6,2};
我想将元素复制num
到以下结构中:
struct tuple
{
int p1;
int p2;
int p3;
int p4;
};
我正在执行以下操作:
struct tuple *arr;
memcpy(&arr,&num,sizeof(num));
这似乎不起作用,因为我稍后在代码中遇到了分段错误。当我尝试打印尺寸时:
printf("size of arr: %lu, size of arr[0]: %lu \n", sizeof(arr), sizeof(arr[0]));
我得到以下信息:
size of arr: 8, size of arr[0]: 16
这是错误的,因为这些值应该是:
size of arr: 80, size of arr[0]: 16
因此,当我尝试打印时,它会出现错误:
for (i=0;i<sizeof(arr)/sizeof(arr[0]);++i)
printf("%d,%d,%d,%d\n", arr[i].p1,arr[i].p2, arr[i].p3, arr[i].p4);
有人可以帮助我了解我可能出错的地方吗?