|
|
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 |
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |