ints の 2D マトリックスを作成し、 を使用してメモリを同じものに割り当てようとしていますmalloc()。
マトリックスを次のようにしたいの{{-4,0},{-3,0},{-2,0},{-1,0},{1,0},{2,0},{3,0},{4,0}}
ですが、後で変更できるようにしたいので、を使用して連続ブロックを動的に割り当てようとしていますmalloc()。私が作成した:
typedef int** scores_table
私の関数は type を返すことができscores_tableます。
これは私のコードです:
scores_table alloc_scores_table(){
scores_table scores;
int i,j, *row;
row=(int*)malloc(sizeof(int)*2*8);
scores=(scores_table)malloc(sizeof(int*)*8);
if(scores==NULL || row==NULL){
quit();
}
for(i=0;i<8;i++){
scores[i]=row+i*2;
}
for(i=0;i<8;i++){
for(j=0;j<2;j++){
if(j==1){
scores[i][j]=0;
}
else{
if(i>3){
scores[i][j]=-4+1+i;
}
else{
scores[i][j]=-4+i;
}
}
}
}
return scores;
}
問題は、関数が返されるだけ-4で、その理由がわかりません。私は何を間違っていますか?