1
3
在C++(和C)中,指针指向任何地址。要知道所指向的内存类型,需要查看进程内存映射。这将是特定于平台的。
但是,即使指针指向堆,如果它是新指针的增量(比如数组),或者如果它是使用
|
2
2
你应该使用智能指针。 您无法知道指针指向何处,但使用智能指针意味着您可以避免删除 任何 在代码中的某个位置创建智能指针,只要您需要使用它所指向的对象,它就会一直存在。然后,不要在代码周围传递智能指针(除非您需要转移/共享所有权),只需传递 参考 指向它所指向的对象(或原始指针)。 当所有对象都由智能指针以这种方式管理时 从未 删除 代码中的任何指针,因为您知道有一个智能指针将在正确的时间处理删除操作。
奖金: 不。
|
3
0
virtual address space
你的过程可能会改变。所以呢
研究并实施 valgrind ,并注意 address sanitizer options of GCC . 在C++中,你可以使用 smart pointers garbage collection handbook 解释了许多相关问题(一个主要问题是 circular references ,这将成为一个复杂的问题)。 在Linux上,您可以 dlopen(3) 许多插件,这也增加了复杂性,但非常有用(请参阅 Qt 或 RefPerSys 作为例子,阅读 C++ dlopen minihowto |
Zax Ftw · 如何获取用于memcpy的浮点地址? 7 年前 |
Safron · OpenCL何时使用全局、私有、本地、常量地址空间 7 年前 |
q126y · 对象的地址空间独立表示 8 年前 |
Justin O'Brien · 打印指针地址与与号地址之间的差异 10 年前 |
user3267522 · 为什么我的程序输出内存地址? 10 年前 |
theleos · C: 相同尺寸二维阵列与普通阵列的差异 11 年前 |