Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Для новичков > EXCEPTION_ACCESS_VIOLATION


Автор: xamelon 19.2.2012, 15:21
Выходит ошибка EXCEPTION_ACCESS_VIOLATION.
Вот код:

Код

#include <stdio.h>

int main()
{
int a,b,n;
FILE *fin, *fout;


fin = freopen("in.txt", "r", stdin);
fout = freopen("out.txt", "w", stdout);

fscanf(fin, "%ld", &a);
fscanf(fin, "%ld", &b);
fscanf(fin, "%ld", &n);

int d[n][2];
int sum[n][2];

for(int i = 0; i < n; ++i)
    {
    for(int y = 0; y<2; ++y)
    {
    fscanf(fin, "%ld", &d[i][y]);
    }    
sum[i][0] = d[i][0] + d[i][1];
sum[i][1] = i;
}

for(int j = n-1; j >= 0; --j)
{
    for(int y = 0; y<j; ++y)
    {
    if(sum[y][0] > sum[y+1][0])
    {
    int foo = sum[y][0];
    sum[y][0] = sum[y+1][0];
    sum[y+1][0] = foo;
    int k = sum[y][1];
    sum[y][1] = sum[y+1][1];
    sum[y+1][1] = k;
    }
    }
}


fprintf(fout, "%ld", sum[0][1]+1);

return 0;
} 

Автор: Fynivx 19.2.2012, 16:15
Ошибка во время открытия fout или во время записи в него?

Я точно не знаю, но, кажется, у Вас fout не FILE* а FILE**.

Автор: feodorv 19.2.2012, 16:18
Гм. Не знаю, что там в коде, но:

Цитата(xamelon @  19.2.2012,  15:21 Найти цитируемый пост)
int d[n][2];
...
fscanf(fin, "%ld", &d[i][y]);


Трудно сказать, отличаются у Вас типы int и long, но "%ld" для int - это перебор...

Автор: pilotnet 6.3.2012, 14:44
int d[n][2];
int sum[n][2];
Нельзя так делать

либо через векторы либо N должно быть известна  на стадии компиляции

Автор: Dem_max 7.3.2012, 06:15
Цитата

int d[n][2];
int sum[n][2];
Нельзя так делать

Можно

Автор: sQu1rr 8.3.2012, 02:13
Цитата(Dem_max @  7.3.2012,  06:15 Найти цитируемый пост)
Можно 

Да нет... n - переменная, а не константа

Автор: volatile 8.3.2012, 02:33
Цитата(sQu1rr @  8.3.2012,  02:13 Найти цитируемый пост)
Да нет... n - переменная, а не константа 

sQu1rr, В новых версиях С++11, можно.

Если судить по коду, то это вообще чистый С.
А в С давно уже так можно.


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)