unreferenced local variable怎么改
2022-10-04 08:50:09
•
来源:
导读 大家好,今天小六子来为大家解答以下的问题,关于unreferenced local variable怎么改这个很多人还不知道,现在让我们一起来看看吧!1、这
大家好,今天小六子来为大家解答以下的问题,关于unreferenced local variable怎么改这个很多人还不知道,现在让我们一起来看看吧!
1、这句提示的意思是,局部变量a使用时未被初始化。
2、 C语言将局部变量放在栈中,即在函数入口处添加一句指令subl $xx, %esp来上移栈顶指针,为局部变量流出空间。
3、而系统管理栈,只有push压入、pop弹出两种基本操作,pop弹出之后不会将那块区域的内容清零,所以说局部变量的值是不确定的,因为栈中那块地方之前可能经历过几次压入而被改写。
4、 解决办法,就是在使用前,给a一个确定的值,让他指向一块确定的可访问的内存区域。
5、可以使用malloc来分配一块堆内存给a:a = malloc (sizeof(int) * 7); 这样写的话,需要在a使用完毕后,调用free函数回收这块堆内存。
本文分享完毕,希望对你有所帮助。
免责声明:本文由用户上传,如有侵权请联系删除!
标签: