我正在尝试创建一个具有动态比例的矩阵并在此处对其进行初始化,这是我用于分配内存和初始化的代码:
int **matrix;
//mem allocation
matrix=(int*)malloc(sizeof(int*)*mat_w);
for (i=0;i<mat_w;i++)
matrix[i]=(int)malloc(sizeof(int)*mat_h);
//init
for (i=0;i<mat_w;i++)
for (j=0;j<mat_h;j++)
matrix[i][j]=0;
这个,工作正常,问题是,如果我尝试创建一个短类型的矩阵 - 我在初始化第一遍时遇到分段错误。
这是 C 语言问题还是我做错了什么?
类型矩阵的代码short
:
short **matrix;
//mem allocation
matrix=(short*)malloc(sizeof(short*)*mat_w);
for (i=0;i<mat_w;i++)
matrix[i]=(short)malloc(sizeof(short)*mat_h);
//init
for (i=0;i<mat_w;i++)
for (j=0;j<mat_h;j++)
matrix[i][j]=0;
PS:为了代码的清晰,我放弃了安全检查、索引变量和边界声明。
谢谢,
亚历克斯