关于C语言地址和内存分配的问题
intn;intpn=&n;printf("%p\n%p\n",&n,pn);内存地址是16位的16进制数(64位操作系统)为什么每次打开程序地址都不变?(打开程序前开了...
int n;
int pn = &n;
printf("%p\n%p\n",&n,pn);
内存地址是16位的16进制数(64位操作系统)
为什么每次打开程序地址都不变?
(打开程序前开了别的程序来占用内存)
局部变量存储在栈的形式到底是如何的?
还是说必须用malloc才变
或者说重启电脑就会变了? 展开
int pn = &n;
printf("%p\n%p\n",&n,pn);
内存地址是16位的16进制数(64位操作系统)
为什么每次打开程序地址都不变?
(打开程序前开了别的程序来占用内存)
局部变量存储在栈的形式到底是如何的?
还是说必须用malloc才变
或者说重启电脑就会变了? 展开
3个回答
展开全部
这个就编译软件的内政,玩家无权干预。多定义几个可能就变了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
给的地址 是虚拟分配的, 和编译器有关。 映射后才是实际地址。
局部变量存储在栈的形式 这个去学习下汇编,汇编里对这块有具体讲。
局部变量存储在栈的形式 这个去学习下汇编,汇编里对这块有具体讲。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询