Question 2.18

Ho un programma che funzione correttamente, ma scarica il core quando finisce. Perche`?

	struct list {
		char *item;
		struct list *next;
	}

	/* Here is the main program. */

	main(argc, argv)
	{ ... }


Un punto e virgola mancante fa` si` che main sia dichiarato restituire una struttura. (La connessione e` difficile da vedere a causa dei commenti nel mezzo.) Dal momento che funzioni che restituiscono strutture sono di solito implementate aggiungendo un puntatore nascosto (vedere domanda 2.9), il codice generato per main() tenta di accettare tre argomenti, sebbene solo due sono passati (in questo caso, dal codice che fa` partire il programma C). Vedere anche domanda 10.9 e 16.4.

Riferimenti: CT&P Sez. 2.3 pp. 21-2


Leggere di seguito: prev prossima su cima


Questa pagina e` di Steve Summit // Copyright 1995 // mail feedback