私はこのプログラムを実行して、行列の鞍点を見つけています(要素は列に最大数があり、同時に行に最小数があります)
これが問題です。セグメンテーション違反が発生しています。実際にwindowsだと動くのですが、ubuntoで動かそうとすると動きません。残念ながら、自分のマシンにはウィンドウしかないので、なぜ機能しないのか、どこで問題が発生しているのかわかりません。
皆さん、私を助けてくれませんか? コードの何が問題なのか、エラーの場所を教えてください!
int main(){
int i, j, *ml, *mc, key = 1, z;
int ordem, **me;
char car;
/* ml = smallest of each row, mc = greatest of each column
* me = given matrix
* ordem = size of matrix */
scanf("%d", &ordem);
me = malloc(ordem * sizeof(int));
for(i = 0; i < ordem; i++){
me[i] = malloc(ordem * sizeof(int));
}
ml = malloc (ordem * sizeof(int));
mc = malloc (ordem * sizeof(int));
for(i = 0; i < ordem; i++){
scanf("%d", &me[i][0]);
for(j = 1; j < ordem; j++){
scanf(" %d", &me[i][j]);
}
do{
z = scanf("%c", &car);
}while ((z != EOF) && (car != '\n'));
}
必要に応じて、コードの残りの部分を提供できますが、malloc または scanf のいずれかでエラーが発生していることは確かです。
どうもありがとう、本当に助けてくれてありがとう!よろしくお願いします!