Я делаю эту программу, чтобы найти седловую точку матрицы (элементов есть наибольшее число на их колонок и в то же время наималейших их подряд)C - Сегментация Fault с динамическим распределением
Так , вот что, я получаю ошибку сегментации. При использовании окон это нормально работает, но когда я буду работать на 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'));
}
В случае необходимости, я могу дать вам, ребята, остальную часть кода, но я совершенно уверен, что ошибка происходит там, либо на таНос или зсапЕ.
Большое спасибо, очень признательна за любую помощь! С наилучшими пожеланиями!
У меня нет 'ubunto'. –
Привет. Добро пожаловать в SO! Ваш вопрос, вероятно, будет закрыт из-за недостаточной информации. Пожалуйста, используйте отладчик, чтобы сузить проблему до определенной строки кода. –
Первым распределением должно быть 'malloc (ordem * sizeof (int *))'. – Barmar