配列を解放するのに問題がありました。私はいろいろな方法を試してみましたが、ただ一つのforループで解放しようとしましたが、正直言って本当に立ち往生しています。ここで私のコードは、どんな助けもありがとう!Cでmallocされた2次元配列を解放する際の問題
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[]){
int r,c,i,j, *array;
int sum = 0;
array = (int *)malloc(r*c*sizeof(int));
printf("Enter the number of rows: ");
scanf("%d", &r);
printf("Enter the number of columns: ");
scanf("%d", &c);
for(i=0;i<r;i++){
for(j=0;j<c;j++){
array[i*c+j] =+ i+j;
sum = sum + array[i*c+j];
}
}
printf("The sum of the array is: %d",sum);
for(i=0;i<r;i++){
for(j=0;j<c;j++){
free(array[i*c+j])
}
}
free(array);
return 0;
}
何が問題ですか?それはクラッシュしますか?それは漏れがありますか?それはコンパイルされませんか?...?具体的にしてください。 – kaylum
申し訳ありませんこれを含めるのを忘れてしまいました。何が起こっているかは、これを実行すると「キャストなしの整数からの自由な点の引数1」と「期待されるvoid *型の引数int型」ですこれらの両方をキャストしようとしたが、まだ運がなかった、おそらく私は間違ってキャストされたが、私は確信していない –
2D配列でコードを投稿できますか? – Olaf