[C] error: unknown type name ‘obraz’
Ostatnio zmodyfikowano 2013-12-28 18:21
quatromen Temat założony przez niniejszego użytkownika |
[C] error: unknown type name ‘obraz’ » 2013-12-27 16:52:58 Witam mam problem z dzieleniem na moduły. podzielilem program na 2 moduły : main.c : #include<stdio.h> #include<string.h> #include<stdlib.h>
#define MAX 300 #define DL_LINII 200
void negacja( int );
typedef struct { int wymx; int wymy; int szarosci; void * obraz_p; } obraz;
typedef struct { void * obraz_pdwa; } obrazdwa;
int tablicadwa( obraz * wobr, obrazdwa * wobrdwa ) { int i, j; int( * obraz_pgm )[ wobr->wymx ]; obraz_pgm =( int( * )[ wobr->wymx ] ) wobr->obraz_p; wobrdwa->obraz_pdwa = malloc( wobr->wymx * wobr->wymy * sizeof( int ) ); int( * obraz_pgmdwa )[ wobr->wymx ]; obraz_pgmdwa =( int( * )[ wobr->wymx ] ) wobrdwa->obraz_pdwa; for( j = 0; j < wobr->wymy; j++ ) { for( i = 0; i < wobr->wymx; i++ ) { obraz_pgmdwa[ i ][ j ] = obraz_pgm[ i ][ j ]; } } return( 0 ); }
void zapisz( FILE * zapis, obraz * wobr ) { int i, j; int( * obraz_pgm )[ wobr->wymx ]; obraz_pgm =( int( * )[ wobr->wymx ] ) wobr->obraz_p; fprintf( zapis, "P2 \n %d %d \n %d", wobr->wymx, wobr->wymy, wobr->szarosci ); for( i = 0; i < wobr->wymy; i++ ) { fprintf( zapis, "\n" ); for( j = 0; j < wobr->wymx; j++ ) { fprintf( zapis, "%d ", obraz_pgm[ i ][ j ] ); } } } i tak dalej inne funkcje..........do int main()........
negacja.c : #include<stdio.h> #include<string.h> #include<stdlib.h>
void negacja( obraz * wobr ) { int i, j; int( * obraz_pgm )[ wobr->wymx ]; obraz_pgm =( int( * )[ wobr->wymx ] ) wobr->obraz_p; for( j = 0; j < wobr->wymx; j++ ) { for( i = 0; i < wobr->wymy; i++ ) { obraz_pgm[ i ][ j ] = wobr->szarosci - obraz_pgm[ i ][ j ]; } } }
I wyskakuje mi błąd error: unknown type name ‘obraz’ [log]
To jest pewnie błąd w funkcji negacja pewnie tutaj ale za bardzo nie wiem czy dodac strukture
Lub coś dopisać w pliku main.c tutaj : [cpp] void negacja(int); [cpp]
CO jest przyczyną tego błędu ?? ?? ?? Z góry dzięki za pomoc :)
|
|
pekfos |
» 2013-12-27 16:56:06 Definicje/deklaracje typów muszą być w każdej jednostce, która ich używa. |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-27 17:05:32 Jak zadeklarowałem w funkcji negacja.c : typedef struct { int wymx; int wymy; int szarosci; void * obraz_p; } obraz;
Wszystko sie kompiluje ale jak tworze plik odtworzenia to wyskakuje mi błąd : Naruszenie ochrony pamięci (core dumped)
Co robic ?? ?? ?? |
|
DejaVu |
» 2013-12-28 01:07:56 Poprawnie politycznie powinieneś mieć jeszcze plik negacja.h, w którym zdeklarowane byłyby struktury (oraz plik *.h powinien zawierać deklaracje funkcji - bez ich implementacji), a pliki *.c robiłyby #include"negacja.h". |
|
quatromen Temat założony przez niniejszego użytkownika |
» 2013-12-28 18:21:58 dzięki :) , czyli tą deklaracje struktury mam mieć w pliku negacja.h i negacja.c czy wystarczy tylko w negacja.h ?? |
|
« 1 » |