更改函数内变量的值

亚历克西斯

我想在另一个函数内的堆栈中更改一个值。

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;

我想要的值复制ivar为了得到apple = 125(但是当我离开时Functioni将释放堆栈内部的空间。)

我看不到我在哪里弄错了。

x

在您的代码中int *var = &apple发生。

想象一下,苹果变量存储在地址0x1000000处,

因此var拥有apple的地址。因此var指向0x1000000。

如果执行var = i,则var变量将保留0x1000000地址并保留新地址作为i的值125,这是无效的,因为无法访问较低的内存地址。

因此,必须满足* var = i的要求,这样才能满足您的要求。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章