我想在另一个函数内的堆栈中更改一个值。
int Function(int *var){
int i=125;
var = i;
}
int Function2(){
int apple;
Function(&apple);
printf("%d", apple);
}
这显示了我error: assignment makes pointer from integer without a cast
这一行var = 125;
。
我想要的值复制i
到var
为了得到apple = 125
。(但是当我离开时Function
,i
将释放堆栈内部的空间。)
我看不到我在哪里弄错了。
在您的代码中int *var = &apple
发生。
想象一下,苹果变量存储在地址0x1000000处,
因此var拥有apple的地址。因此var指向0x1000000。
如果执行var = i,则var变量将保留0x1000000地址并保留新地址作为i的值125,这是无效的,因为无法访问较低的内存地址。
因此,必须满足* var = i的要求,这样才能满足您的要求。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句