我在试验 void 指针时遇到了以下问题。当我编译下面的代码时一切正常但是当我在我的机器上运行它时它不会给我结果而是提示 The program has stopped working appeared( https://drive.google.com/file/d/0B1mLcnk8kTFUeEtmYnlOaWJ6T3c/view?usp=sharing ) ,我无法弄清楚背后发生了什么场景,是否存在关于取消引用 void
指针的任何问题。
此外,如果我使用注释代码而不是原始代码,它会起作用。
#include<stdio.h>
int main()
{
void* ptr;
int dupe = 5;
*(int* )ptr = dupe; // ptr = &dupe;
printf("The value at ptr is %3d",*(int* )ptr);
}
我在 CodeBlocks 上使用 gcc。
最佳答案
6. *(int* )ptr = dupe; // ptr = &dupe;
指针 ptr 未指向有效的内存位置。你在评论里写的,就是你应该做的。
语句ptr = &dupe
将使ptr 指向变量dupe
的内存位置。
关于c - 通过强制转换取消引用 void 指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31445788/