栈和堆的内存地址问题

来源:8-6 案例:单链表的基本实现

十三山入秋

2021-01-01

老师您好:我又来了
您之前提到,c里面,数组在函数调用栈,然后这个链表是 堆里面。
想请教一下:
栈的内存地址范围是从0x多少到0x多少,堆内存地址范围是从0x多少到0x多少,
这个能怎么知道吗,如果能知道这些的话,就能验证和判别,我的数据是在堆还是栈,可以自我验证,查了一下说是c++有VirtualQuery啥的(c++还没学过)

如果可以的话,还想请教一下java的话,有什么办法能够看、验证一个数据是在堆还是栈,Idea貌似没有Compile explorer那个看地址的,

元旦快乐,万分感激

写回答

1回答

bennyhuo

2021-01-01

地址范围跟编译器关系很大。

Java只要是new出来东西都在堆上。

0
3
bennyhuo
回复
十三山入秋
这个跟编译器的实现和操作系统进程的地址空间有关系了。
2021-01-02
共3条回复

C语言系统化精讲 重塑编程思想 打造坚实的开发基础

如果通向大牛的道路有捷径,那就是先学好C语言

2208 学习 · 853 问题

查看课程