【发布时间】:2010-07-08 02:22:30
【问题描述】:
如果我有
int a= 5;
long b= 10;
int count0 = 2;
void ** args0;
args0 = (void **)malloc(count0 * sizeof(void *));
args0[0] = (void *)&a;
args0[1] = (void *)&b;
如何将 args[0] 和 args0[1] 转换回 int 和 long? 例如
int c=(something im missing)args0[0]
long d=(something im missing)args1[0]
【问题讨论】:
-
顺便说一句,我认为将
void*转换为int或long并不是一个好习惯。在给定的平台上,整数和指针的宽度不必相同。一种更便携的方式是使用intptr_t甚至更好的uintptr_t。这可以保证您不会丢失位。
标签: c