【发布时间】:2016-04-02 08:39:24
【问题描述】:
我必须处理一个通用链表,所以我不能将数据格式从 void * 转换为 int。
微型版:
int main(int argc, char **argv) {
void *data;
int i = 100;
*((int*)data) = i;
printf("%d", (int)data);
return 0;
}
继续打印地址。同样,data = &i 也返回一个地址。 data = i 只会导致错误。我已尽我所能,但无法将值 i 插入 data。
【问题讨论】:
-
您不能取消引用“数据” - 它未初始化。鼻恶魔可能会随之而来......
-
GCC 的 / Clang 的
-Wall选项为什么有用的一个很好的例子:他们会因为你这样做而由衷地扇你一巴掌。
标签: c