关于c++ new内置类型对象的存储位置
1:一个结构体
struct student
{
int num;
int age;
};
struct student * stu=new Student;
这个stu指针所指向的内存地址是对内存呢还是栈内存呢?
c++中对待struct类型是内置类型还是自定义类型啊?
2:int *p =new int(100);
这个p所指向的内存地址是堆内存还是占内存呢?也就是说内置类型new出来的对象是在堆中存储还是栈中存储呢?
这个怎么用实验代码验证呢?
3:数据结构中的堆与我们c++程序中new对象的所使用的堆有什么不同啊?只是概念不同吗?
请高手给予指点,万分感激
c++ 存储 堆栈 内置类型 new
[解决办法]
new 出来的都是堆内存了。struct 结构体肯定是自定义的数据类型吧。
[解决办法]
1 堆空间
struct 关键字就是让我们可以自定义类型的(当然是通过内部类型)
2 堆空间
不只是内置类型,只要是new出来的,即使自己定义的类型也都是在堆空间的
堆的内存地址是有个范围的,网上查下,然后你可以打印你new出来空间,一定也是在这个地址范围内的!
3 完全不同的概念!
数据结构中的堆是一种排序的树形数据结构的,c++的堆空间是指一片内存空间
只是c++堆区是采用了数据结构中堆的数据结构管理方式