2D配列を作成する関数があります:
float** createMatrix(int x, int y){
float** array= malloc(sizeof(float*) * y);
for(int i=0; i<y; i++)
array[i] = malloc(sizeof(float) * x);
return array;
}
これで、2D 配列を作成できます。
float** temp=createMatrix(2,2);
たとえば、「マトリックス」(2D配列)を転置する関数もあります。
float** matrixTranspose(float** m, int x, int y){
float** result=createMatrix(y, x);
for(int i=0; i<y; i++){
for(int j=0;j<x; j++) result[j][i]=m[i][j];
}
return result;
}
今私がこれを行うと:
temp=matrixTranspose(temp,2,2);
以前にtempに割り当てられた古いメモリはどうなりますか? 私の転置関数は、新しいメモリ チャンクを割り当てます。明らかに、転置後に「古い一時」を何らかの形で解放する必要がありますが、どのように(エレガントに)?