Пишет что отсутствует ; . Кидает на 21 строчку (отмечу в коде). Ошибку выдает вне зависимости от того, что в цикле.
#include
#include
#include
#include
#include
#include
void main()
{
FILE *txt;
char txtmas[1000];
int n=0,m=0,x,y;
int **mas;
if((txt=fopen("c:\\Matrica.txt","r"))==NULL)
{
puts("Nevozmojno otkrit fail");
exit(1);
}
fscanf(txt, "%d", &x);
fscanf(txt,"%d",&y);
mas = (int**)malloc(x*sizeof(int));
for (int i=0;i<x;i++) // Сюда кидает ошибку.
{
mas[i] = (int*)malloc(y*sizeof(int));
for (int j=0;j<y;j++)
fscanf(txt,"%d", &mas[i][j]);
}
printf("%d",mas[1][1]);
system("pause");
}
Другие языки программирования и технологии
Ошибка В программе СИ
#include <stdio.h>
#include <stdlib.h>
#include <Windows.h>
#include <locale.h> // Да здравствует русский язык!
int main(void) { // Функция main принмает void, а возвращает int
FILE* txt;
int x, y, i, j;
int** mas;
const char* filename = "c:\\Matrica.txt"; // Если диск C:\ системный, то к нему может быть запрещён доступ
setlocale(LC_CTYPE, "Russian_Russia.1251");
if ((txt = fopen(filename, "r")) == NULL) { // Замечание: Неплохо бы использовать fopen_s
printf("\a Невозможно открыть файл %s!\n", filename);
Sleep(3000); // Дать пользователю увидеть это сообщение!
exit(1);
}
// fscanf_s использовать безопаснее
fscanf_s(txt, "%d", &x); // Предупреждение: Здесь бы проверочку выполнить! А вдруг там не число.
fscanf_s(txt, "%d", &y); // Предупреждение: Здесь бы проверочку выполнить! А вдруг там не число.
mas = (int**)malloc(x * sizeof(int*)); // Память следует выделять под указатель типа
for (i = 0; i < x; ++i) { // Старые стандарты C требуют все объявления выполнять в начале функции
mas[i] = (int*)malloc(y * sizeof(int));
for (j = 0; j < y; ++j) {
fscanf_s(txt, "%d", &mas[i][j]); // Предупреждение: Здесь бы проверочку выполнять! А вдруг не число попадётся.
}
}
for (i = 0; i < x; ++i) { // Вывод результатов загрузки
for (j = 0; j < y; ++j) {
printf("%4i", mas[i][j]);
}
printf("\n");
}
for (i = 0; i < x; ++i) free(mas[i]); // Память следует освобождать, сначала под массивы элементов
free(mas); // А затем под массив указателей на тип
system("pause");
return 0; // В C требуется явно возвращать 0 из главной функции, в случае успеха
}
#include <stdlib.h>
#include <Windows.h>
#include <locale.h> // Да здравствует русский язык!
int main(void) { // Функция main принмает void, а возвращает int
FILE* txt;
int x, y, i, j;
int** mas;
const char* filename = "c:\\Matrica.txt"; // Если диск C:\ системный, то к нему может быть запрещён доступ
setlocale(LC_CTYPE, "Russian_Russia.1251");
if ((txt = fopen(filename, "r")) == NULL) { // Замечание: Неплохо бы использовать fopen_s
printf("\a Невозможно открыть файл %s!\n", filename);
Sleep(3000); // Дать пользователю увидеть это сообщение!
exit(1);
}
// fscanf_s использовать безопаснее
fscanf_s(txt, "%d", &x); // Предупреждение: Здесь бы проверочку выполнить! А вдруг там не число.
fscanf_s(txt, "%d", &y); // Предупреждение: Здесь бы проверочку выполнить! А вдруг там не число.
mas = (int**)malloc(x * sizeof(int*)); // Память следует выделять под указатель типа
for (i = 0; i < x; ++i) { // Старые стандарты C требуют все объявления выполнять в начале функции
mas[i] = (int*)malloc(y * sizeof(int));
for (j = 0; j < y; ++j) {
fscanf_s(txt, "%d", &mas[i][j]); // Предупреждение: Здесь бы проверочку выполнять! А вдруг не число попадётся.
}
}
for (i = 0; i < x; ++i) { // Вывод результатов загрузки
for (j = 0; j < y; ++j) {
printf("%4i", mas[i][j]);
}
printf("\n");
}
for (i = 0; i < x; ++i) free(mas[i]); // Память следует освобождать, сначала под массивы элементов
free(mas); // А затем под массив указателей на тип
system("pause");
return 0; // В C требуется явно возвращать 0 из главной функции, в случае успеха
}
почему у тебя целая толпа пустых "#include"? я в код не смотрел, но он откомпилировался без вопросов
Юрий Михалёв
Инклюды здесь неправильно отображаются. на в пастбин сбрасывать
Юрий Михалёв
Mas malloc выше закинь. Как вариант
Юрий Михалёв
После объявления МАС. А из цикла убери. И где освобождение памяти?
Нуржан Акбай
Ну это mail.ru чудит
И для верности задай х начальное значение например100¡
Похожие вопросы
- Помогите исправить ошибку в программе на Си
- Непонятная ошибка в программе на Си (в функции malloc)
- Помогите исправить ошибку в программе (c++).
- Помогите, пожалуйста, найти ошибку в программе сортировки стека (по убыванию ) на Си.
- Пожалуйста, помогите исправить ошибки в программах на С++!
- Подскажите пожалуйста, какая ошибка в программе на Pascal ABC.NET?
- где у меня ошибка в программе? ( Паскаль не изучала, писала интуитивно :D )
- Массивы. Ошибка в программе. Basic
- где ошибка в программе turbo pascal (фото внутри)
- помогите исправить ошибку в программе в Pascal