#include <stdio.h>
#include <malloc.h>
char * define_row(int n)
{
char * row=(char *)calloc(sizeof(char),n);
row[0]='5';
return row;
}
char ** define_matrix(int n,int m)
{
char ** rows=(char **)calloc(sizeof(char),n);
int i;
for(i=0;i>0;i++)
{
rows[i]=define_row(m);
}
return rows;
}
void main()
{
int n=5,m=5;
char **k;
k=define_matrix(n,m);
printf("%d",&k[0][0]);
}
代码应该为大小为 NxM 的矩阵分配内存,但我现在正在测试 5x5。运行代码时,它确实打印了一个 0 ,但是当我添加时
void main()
{
int n=5,m=5;
char **k;
k=define_matrix(n,m);
k[0][0]=5;
printf("%d",&k[0][0]);
}
它突然在运行中崩溃,我的代码有什么问题?