克隆指向 int 的 void* 指针
Clone void* pointer to int
我有这个函数签名:
void* cloneInt(const void* i);
此 int
表示哈希函数的键。我需要有这个克隆函数,因为它在我的 API 中用于散列 table 的通用实现(这个函数是 int 实现的一部分,这个函数将作为指向我的通用实现将使用的函数)。
但是我在理解上遇到了问题:如何克隆 int
?我需要 return 一个指向与 int
相同的值但在内存中不同位置的指针。这让我很困惑。
这会起作用:
#include <stdio.h>
#include <stdlib.h>
void* cloneInt(const void* i)
{
int *myInt = malloc(sizeof(int));
*myInt = *(int*)i;
return myInt;
}
int main(int argc, char** argv)
{
int i=10;
int *j;
j = cloneInt(&i);
printf("j: %d i: %d\n", *j, i);
free(j);
}
我有这个函数签名:
void* cloneInt(const void* i);
此 int
表示哈希函数的键。我需要有这个克隆函数,因为它在我的 API 中用于散列 table 的通用实现(这个函数是 int 实现的一部分,这个函数将作为指向我的通用实现将使用的函数)。
但是我在理解上遇到了问题:如何克隆 int
?我需要 return 一个指向与 int
相同的值但在内存中不同位置的指针。这让我很困惑。
这会起作用:
#include <stdio.h>
#include <stdlib.h>
void* cloneInt(const void* i)
{
int *myInt = malloc(sizeof(int));
*myInt = *(int*)i;
return myInt;
}
int main(int argc, char** argv)
{
int i=10;
int *j;
j = cloneInt(&i);
printf("j: %d i: %d\n", *j, i);
free(j);
}