#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]);
}
実行中に突然クラッシュします。私のコードの何が問題なのですか?