Witajcie.
Muszę napisać program, który będzie wczytywał od użytkownika nazwę pliku z liczbami, następnie będzie sortował liczby i wypisze je posortowane do drugiego pliku podanego przez użytkownika.
Na chwilę teraźniejszą mam tyle kodu i wyskakuje mi błąd "Naruszenie ochrony pamięci"
Mój system to ubuntu 11.10
kompiluje z opcjami -ansi -pedantic -W -Wall
A oto kod:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char zrodlowy[10];
char docelowy[10];
long rozmiar;
int i, tablica[sizeof(rozmiar)];
FILE *plik1;
FILE *plik2;
printf("Podaj nazwe pliku zrodlowego.\n");
scanf("%s",zrodlowy);
printf("pobralem zrodlowy \n");
plik1 = fopen(zrodlowy,"r");
if (plik1 == NULL)
{
printf("\tPodany plik nie istnieje\n");
return -1;
}
else
{
i = 0;
rozmiar = 0;
while(!feof(plik1))
{
fscanf(plik1,"%d",&tablica[i]);
i++;
rozmiar++;
}
printf("Podaj nazwe pliku docelowego.\n");
scanf("%s",docelowy);
printf("pobralem docelowy\n");
plik2 = fopen(docelowy,"w");
for (i=0;i<=rozmiar;i++)
{
fprintf(plik2, "%d\n",tablica[i]);
}
}
fclose(plik1);
fclose(plik2);
return 0;
}
Program pobiera nazwę pliku zrodlowego i wywala blad.
EDIT:
Znalazłem błąd - linijka z deklaracją tablicy.
Czy macie może jakiś pomysł jak zadeklarować rozmiar tablicy "nie na sztywno"?