Closed. This question is off-topic。它当前不接受答案。
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我有一个指向指针的数组:
这些指针中的每一个都指向某个内存块,其中包含一个指向另一个内存块的指针。
我试图得到一个指向这样的内存斑点的指针之一:
但是,它给我带来了段错误,而gdb并不是很有用。为什么会发生这种情况?处理此案的正确方法是什么?
想改善这个问题吗? Update the question,所以它是on-topic,用于堆栈溢出。
5年前关闭。
我有一个指向指针的数组:
void ** buckets.
这些指针中的每一个都指向某个内存块,其中包含一个指向另一个内存块的指针。
我试图得到一个指向这样的内存斑点的指针之一:
void *cell = cm->buckets[0] // for the first blob it is pointing to.
但是,它给我带来了段错误,而gdb并不是很有用。为什么会发生这种情况?处理此案的正确方法是什么?
最佳答案
检查存储在buckets
中的地址值。最有可能的是,它尚未初始化(使用new
,malloc
等),并且buckets
内的地址是一些受随机保护的内存地址。buckets[0]
等效于*buckets
或取消引用buckets
中的值。因此,系统尝试访问此受保护地址的内容,从而导致段错误。
10-05 19:51