指针到指针的分配然后迭代会导致分段错误
Pointer to pointer allocation then iteration causes segmentation fault
我对以下代码有问题。我确信这是正确的。我试图将内存分配给函数中的指针,然后用for循环将数据写入同一函数中分配的内存。但是当for循环中的计数器达到2时,就会导致分段错误,或者我试图在循环中设置一堆值或从中读取
是的,我在StackOverflow上对此进行了研究,但我没有发现以下答案太有帮助。*如何分配内存并将其(通过指针参数)返回给调用函数?
#include <cassert>
#include <cstdlib>
#include <cstdio>
typedef unsigned char uint8_t;
void allocMem(uint8_t **i){
*i = new uint8_t[10];
for(int j = 0; j < 10; j++){
printf("%dn", *i[j]);
//*i[j] = j * 2;
}
}
int main(){
uint8_t *i = 0;
allocMem(&i);
assert(i != NULL);
delete[] i;
}
优先级错误:
printf("%dn", *i[j]);
应该是
printf("%dn", (*i)[j]);
相关文章:
- 数组的指针从不分段故障
- 分段错误 - 读取初始化指针的数组
- 为什么在将 void 指针转换为整数指针时出现分段错误
- C++为什么我的指针选择排序中存在分段错误?
- C++指针无法在函数外部传递值和分段错误(核心转储)错误
- 尝试将对象插入空指针数组时出现分段错误
- 误用指针会产生分段错误。我仍然不确定如何纠正它
- 在C++中,当指向删除和指向不同对象时,分段故障指针
- C++ 取消引用指向矢量的空指针时的分段错误
- 取消引用指针并立即为其分配变量,导致分段错误
- 如何避免指针超出范围(多态性)的C++分段错误
- 在指针迭代中使用for循环时出现分段错误
- 分配指针时出现分段错误
- C++:在push_back时迭代指针向量时出现分段错误
- 不断得到分段错误和free()无效指针
- 共享内存指针分段错误
- 分叉进程的零星堆栈指针分段错误
- 从线程原因解引用返回的指针;分段故障:11
- c++方法返回指针:分段错误
- C++中的指针;分段错误错误: