我不太理解new 和 delete,这两个东西做了些什么?是怎么做的?能不能举个例子说明一下?先谢过。
谢谢楼上回复。int *p //定义了一个指向int型的指针p=new int;//申请了一块存储空间,用来存int变量,并把它的地址赋给P。这块空间是四个字节(或两个字节)吗?使用方法和int abc;中变量abc的一样吗?delete p;//删除了指针P所指向的存储空间哪位大侠帮忙回答下上面两个问题?先谢过。
p=new int;//申请了一块存储空间,用来存int变量,并把它的地址赋给P。这块空间是四个字节(或两个字节)吗?使用方法和int abc;中变量abc的一样吗?:::不完全一样,书上会说的很明白,因为你要遇到的时候才会理解delete p;//删除了指针P所指向的存储空间:::对!
没有这种说法
效果不一样,上面一种p所指向的内存在堆中,下面p指向的对象是在栈中上面一种p指向的内存除非你调用delete p或者程序结束,否则内存对象一直存在下面那种如果是在函数中定义的话,那么在函数执行完之后,p指向的内存的数据就是未知数据用哪种方法关键看p的生命周期