【发布时间】:2017-02-21 12:02:56
【问题描述】:
我在 youtube 教程上看到了关于人们 printf 变量的内存地址的指针。有问题的视频是在 Code:Blocks 中完成的,它与 %p 一起工作,但每当我在 Geany (VirtualBox) 中尝试完全相同的东西时,我都会遇到编译错误。我应该尝试另一种 %letter Linux 吗?
int main(int argc, char *argv[]){
int var;
printf("%p\n", &var);
return 0;
}
我不需要它来做练习或其他事情,只是好奇(我猜是为了更好地理解指针的概念)。 提前致谢!
编辑:错误消息是 Linux 希望我在打印之前将 &var 转换为 (void*)。抱歉,我不是很清楚:我的问题基本上是,这是 Linux/Windows 的事情吗?为什么 Windows 会接受它,而 Linux 却希望我将其转换为 void-pointer?
【问题讨论】:
-
确切的错误信息是什么?
-
总是一个好的开始实际上是阅读错误消息(并添加你的问题!)。
-
我认为你只需要将
&var转换为void*。 -
printf("%p\n", (void*)&var); -
请提供确切的错误消息,而不是对其的解释。