有办法,让一个大局指针,从初始赋值起,一直到程序退出的最后一刻,都保持原值吗
有办法,让一个全局指针,从初始赋值起,一直到程序退出的最后一刻,都保持原值吗?
如果想让一个全局指针,从初始化起,一直到程序结束,都指向某个地址,例如:
A * a = new A();
假如a指针本身,所占的4个字节内存,其地址是, address, address + 1, address + 2, address + 3。
那么,有办法,让这4个字节的内存,一直保持原值吗?
(就是这4个字节里的内容值,一直等于A对象的内存的起始地址,永远不变,直到操作系统回收程序的内存资源。)
目的是为了,程序的整个生命周期,都能访问到A对象。
虽然#pragma init_reg(".CRT$XCM")这样的方法,
可以把某些变量对象的实例化提前,从而使得其析构、内存回收被推后,
但只要存在析构、或者内存回收之类的,就感觉始终涉及先后顺序问题。
所以我觉得,如果有一种方法,能够令某个变量的访问,直到程序最后一刻,就好了。
------解决思路----------------------
A*const a = new A();这样可以帮你避免大部分的修改情况。
------解决思路----------------------
把你的 tests 在堆上分配就可以了。在构造函数中分配,然后永不销毁。
你的代码被编译器放在 U 段中, U很靠后的。
如果想让一个全局指针,从初始化起,一直到程序结束,都指向某个地址,例如:
A * a = new A();
假如a指针本身,所占的4个字节内存,其地址是, address, address + 1, address + 2, address + 3。
那么,有办法,让这4个字节的内存,一直保持原值吗?
(就是这4个字节里的内容值,一直等于A对象的内存的起始地址,永远不变,直到操作系统回收程序的内存资源。)
目的是为了,程序的整个生命周期,都能访问到A对象。
虽然#pragma init_reg(".CRT$XCM")这样的方法,
可以把某些变量对象的实例化提前,从而使得其析构、内存回收被推后,
但只要存在析构、或者内存回收之类的,就感觉始终涉及先后顺序问题。
所以我觉得,如果有一种方法,能够令某个变量的访问,直到程序最后一刻,就好了。
------解决思路----------------------
A*const a = new A();这样可以帮你避免大部分的修改情况。
------解决思路----------------------
把你的 tests 在堆上分配就可以了。在构造函数中分配,然后永不销毁。
你的代码被编译器放在 U 段中, U很靠后的。