Fehler in C-Programmen finden

Manfred Rebentisch <[email protected]>
Newsgroups gmane.linux.suse.programming
Organization COMPARAT Software-Entwicklungs.-GmbH
Message-ID <[email protected]>
Hallo,
ich frage mich, wie man am bestimmte Programmierfehler findet.
Ich mache mal ein Beispiel:

int func( char* str, int option )
{
	char*  sub = NULL;
	if( option & 2 ) {
		sub = str;
	}
	printf("%s\n", sub);
	return 0;
}

Wäre sub nicht initialisiert, würde der Compiler (gcc) eine Warnung 
ausspucken. Aus bestimmten Gründen (die nicht aus diesem Beispiel erkenntlich 
sind), soll sub aber mit NULL initialisiert sein.

Bitte nehmt das Beispiel nicht so wörtlich. Ich habe komplexe Beispiele, ist 
aber das gleiche Prinzip: sub kann NULL sein, wenn z.B. option 0 ist - und 
das darf nicht sein.
Man könnte natürlich richtig programmieren und ein "if(sub)" vor die printf 
Anweisung stellen. Aber es geht mir darum, solche Fälle, die zur Laufzeit mit 
einem Crash enden (außer bei printf), zu finden.

Am besten wäre eine Exception, die mir die Codezeile zeigt. Aber bei reinen 
C-Libraries?

Wie würdet ihr das machen?

Grüße
Manfred


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.