Witam,
Mam poważny problem z swoim programem, jak już zaznaczyłem w temacie, program wywala Segmentation Fault nim jeszcze zacznie pracę.
[code]
//forum zamienialo krzyzyk na to usunalem
include <stdio.h>
include <stdlib.h>
include "pgm_file.h"
include "operations.h"
include "random.h"
int main(int argc, char *argv[])
{
printf("dgfs");
pgm *pgm_file;
printf("sdfgd");
load_basic_data(&pgm_file, argc, argv);
printf("dsfgdsf");
if(load_file(&pgm_file))
{
operations(&pgm_file, argc, argv);
save_file(&pgm_file);
}
return 0;
}
[/code]
//Te dziwne ciagi znaków są po to by dowiedzieć się w którym momencie jest ten błąd, wyszło na to że przed funkcją main, bo żaden się nie wyświetlił oO
Nie jestem pewien czy na pewno, ale zdaję mi się że błąd może być gdzieś w dwuwymiarowej tablicy dynamicznej umieszczonej w strukturze, dlatego umieszczam ten kawałek kodu:
[code]
typedef struct pgm_file{
char file_name_in[FILE_NAME_MAX_LENGHT]; //Nazwa pliku wejsciowego
char file_name_out[FILE_NAME_MAX_LENGHT]; //Nazwa pliku wyjsciowego
int sizex; //Szerokosc obrazu
int sizey; //Wysokosc obrazu
int grayscale; //Skala szarosci obrazu
int display;
FILE *file; //Wskaznik na plik
int **picture; //Dwuwymiarowa tablica informacji o poszczegolnych pikselach obrazu
} pgm;
[/code]
[code]
int load_file(pgm *pgm_file){
...
(pgm_file)->picture = (int)malloc((pgm_file)->sizex * sizeof(int));
for (int i = 0; i < (*pgm_file)->sizex; i++)
(pgm_file)->picture[i] = (int) malloc((*pgm_file)->sizey * sizeof(int));
}
[/code]
Takie rozwiązanie znalazłem gdzieś na internecie i na pierwszy rzut oka zdaje mi się prawidłowe
Jakie mogą być inne przyczyny takiego błędu? Kompilator gcc na diablo pwr.