Strona 1 z 1

Rozmiar struktury a używanie system(CLS)

: 25 maja 2011, o 23:22
autor: pawwach
Witam,

Mój dzisiejszy problem jest totalnie nietypowy i nigdzie nie mogę znaleźć na niego rozwiązania. Polega on na tym, iż posiadam następującą strukturę listy jednokierunkowej:

Kod: Zaznacz cały

typedef struct lista {
	char imie[31];
	char nazwisko[31];
	char pesel[12];
	char data[11];
	char plec[2];
	char email[41];
	char telefon[21];
	struct lista *nast;
} el_listy;
Później w int main() tworzę głowę tejże listy:

Kod: Zaznacz cały

	el_listy *wskaznik = NULL;
	el_listy *head;
	head = (el_listy*)malloc(sizeof(el_listy*));
	head->nast=NULL;
Nietypowość problemu objawia się w tym, że wszystko działa do czasu... użycia komendy system("CLS").

Kod:

Kod: Zaznacz cały

	system("CLS");
	printf("%d ", head->nast);
z zakomentowaną pierwszą linijką daje w wyniku 0, zaś przy normalnym użyciu system("CLS")... zmienia wartość wskaźnika na 1935438711. Co ciekawe, problem nie występuje (także po CLS jest drukowane 0), kiedy zakomentuję przynajmniej dwa dłuższe stringi (np imię i nazwisko) w strukturze.

Co się dzieje?

Rozmiar struktury a używanie system(CLS)

: 25 maja 2011, o 23:38
autor: argv
Na pierwszy rzut oka powinno być:

Kod: Zaznacz cały

 head = (el_listy*)malloc(sizeof(el_listy));

Rozmiar struktury a używanie system(CLS)

: 25 maja 2011, o 23:46
autor: pawwach
No tak. Nie popisałem się Nie wiem, jak mogłem popełnić taki głupi błąd i, przez godzinę analizując kod, go nie zauważyć. Zdaje się, że pomogło. Dzięki.