我正在try 动态创建一个2D数组(5行和2个数组).在分配内存时,没有出现任何问题.但是,在将实际值分配给数组时,我收到了一个分段错误错误.
在调试过程中,我意识到当for循环中的i
值为4时,错误弹出
即使在没有问题地分配了数组将使用的内存之后,如何可能出现分段故障错误?
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int **ptr = (int **)malloc(sizeof(int)*5);
for(int i = 0; i<5; i++){
ptr[i] = (int *)malloc(sizeof(int)*2);
}
for(int i = 0; i<5; i++){
for(int j = 0; j<2; j++){
ptr[i][j] = i;
}
}
return 0;
}