【发布时间】:2021-05-16 14:20:28
【问题描述】:
如何为大小为 2 的数组编写复制函数?使用c
我想要它,所以我可以将它传递给通用代码
这是定义:
/** Key element data type for map container */
typedef void *MapKeyElement;
这是我写的复制函数:
MapKeyElement gameCopyKey(MapKeyElement array_to_copy)
{
if(!array_to_copy)
{
return NULL ;
}
int** array=malloc(sizeof(**array));
if(!array)
{
return NULL;
}
int *tmp=(int*)array_to_copy;
*array[0]= tmp[0];
*array[1]= tmp[1];
return array;
}
但我不知道这是否是写入方式? 有人有想法吗?
【问题讨论】:
-
至少
int** array=malloc(sizeof(**array));看起来不对。分配array[0]和array[1]应该是int** array=malloc(sizeof(*array) * 2);。也不要忘记在取消引用之前将元素初始化为某个有效地址。