发布网友 发布时间:2024-10-04 01:48
共1个回答
热心网友 时间:2024-10-07 08:57
C++中都什么时候需要给一个指标new一段空间啊?要new 一段空间是因为如果不初始化,指标就是野指标,它的值是随机的,你访问一个随机的地址当然会出错。它有可能是任何的东西,你如果能确定它随机的那个地址也是你初始化过的一个物件的地址那就不会出错,但是你不能确定,它是随机的,所以必须给它分配一个空间。
c++指标用new分配空间 不存在,程式执行结束后,作业系统会回收该程式所占用的资源
但如果程式还在执行,那么记忆体在泄露
补充:刚查询书,当程式执行完后,该程式占用的资源是否回收,是作业系统的任务。如果作业系统不够健壮,那么该记忆体将不被回收,即不能使用,不过现在的大部分作业系统都是智慧的。
C++ primer plus See page 282 please
通常这种情况伺服器来说很严重,因为伺服器的程式将一直执行,不能够停止,像百度,轻易重启下程式,被人骂死的
this指标保存于物件之中,作为隐含引数传给其成员函式。通常在成员函式中需要去除物件时要显式呼叫this指标,比如过载前置++或--运算子时。
c++中一般什么时候需要开辟空间? 我觉得主要是一下情况:
1。动态资料结构,比如动态阵列、连结串列、树结构等等。
2。在一个类中维护另一个类的指标经常需要在堆中为那个类的物件申请空间。
不管什么样的指标,都不一定要分配记忆体,比如有些指标变数是专门用来记录别人的地址的,那么一般不需要给它分配记忆体空间,因为他只是一会儿指向这个变数,一会儿又指向那个变数而已。
C++的指标强大而灵活,功能远不止这些,多实践,你自己会明白的。我觉得这么没什么固定的说法,还是要根据程式要完成的功能来说,你的程式需要就申请,不需要就不申请,总不能编一个列印从1加到N的和的程式也强迫别人去动态申请记忆体吧?
c++中给一个物件的指标赋值为什么要加()呢?定义这个类又没有引数。new CView是向系统要这个类那么大的空间!注意,空间大小算的只是资料成员的空间!因为成员函式不占有空间的!
指标本身空间什么时候释放 这个问题问的很好
指标变数本身是在栈上申请的空间,超过作用域就会被自动释放的
new关键字向系统请求一块记忆体,把这块记忆体地址赋值给p。这时指标p是唯一可以引用该记忆体的方式。如果改变p的值会丢失那块记忆体,再也找不回来,也就是记忆体泄露
C语言 什么时候需要定义指标什么时候需要定义变数如果你储存的是数值或者字元的资讯,那么就定义变数;如果你需要记录一个变数在计算机记忆体中的储存地址,那么你定义的就是指标。
C++ 宣告指标空间问题:int *p=new int(10) 与 int *p=new int[ int *p=new int(10) 开辟一个指标p p指的内容是一个整型,值为10
int *p=new int[10] 开辟一个长为10的阵列,预设每个值都是0,p指向array的开头
指标就是地址。 有时书上为了讲解指标的用法会搞一些为了应用而应用的例子。
指标的应用和阵列、结构体紧密相连,应用指标就是直接通过地址进行操作,功能十分强大,不仅方便,而且效率更高。
至于具体的在哪里用、怎么用,这个是要平时多程式设计多积累自己领悟的。