WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Programmierung (http://www.wcm.at/forum/forumdisplay.php?f=17)
-   -   C: Fehler bei fprintf(stdout, "...") (http://www.wcm.at/forum/showthread.php?t=143790)

harry3 03.09.2004 17:11

C: Fehler bei fprintf(stdout, "...")
 
Hallo!

Warum bekomm ich den Compiler zum Crashen mit folgendem Code:

PHP-Code:

//include dateien
int main()
{
clrscr();
printf("Hallo von printf...\n");
fprintf(stdout"Hallo von fprintf");
getch();

return(
0);


Kompilierung passt, Programm wird ausgeführt, macht das, was es machen soll, aber wenn ich dann zurück in die IDE komme steht nur noch Müll da und beim nächsten Tastendruck crashed das Programm.


Viele Grüße,
Harri

K@sperl 03.09.2004 21:33

Welche IDE?

JackLemon 03.09.2004 21:56

ist sicher irgendwas mit der string-memory allocation. bei c geht's immer um memory allocation...

käptn 03.09.2004 22:11

Re: C: Fehler bei fprintf(stdout, "...")
 
Zitat:

Original geschrieben von harry3
Warum bekomm ich den Compiler zum Crashen
...

Kompilierung passt, ...

Widerspruch?

~

harry3 03.09.2004 22:23

Danke für die Antworten!
 
IDE: Turbo C++.

Zitat:

Original geschrieben von käptn
Widerspruch?

~

Sorry! Hab mich vielleicht etwas falsch ausgedrückt: Die Kompilierung selber haut hin, danach läuft das Programm auch, doch nach Beenden des Programms kommts zum Absturz vom gesamten Turbo C++.


Allerdings scheint es eine Eintagsfliege gewesen zu sein, seit dem Absturz ists nicht mehr vorgekommen. Aber komisch ists trotzdem!

Zitat:

ist sicher irgendwas mit der string-memory allocation. bei c geht's immer um memory allocation...
Ich kann bei bei stdout keine memory allocaten(wie heißt den "allocate" auf good old deitsch)???
Es handelt sich doch nicht um ein FILE.(meines Wissens)



Grüße,
Harri

K@sperl 03.09.2004 22:36

Re: Danke für die Antworten!
 
Zitat:

Original geschrieben von harry3
Ich kann bei bei stdout keine memory allocaten(wie heißt den "allocate" auf good old deitsch)???
allokieren oder reservieren.
Stimmt, das geht bei einem File definitiv nicht (also mit der malloc Funktion).

harry3 03.09.2004 22:41

Naja, wahrscheinlich wars halt wirklich nur mal wieder so ein Moment, wo keiner so wirklich weiß, was sich der Compi dabei gedacht hat.;)


Nur mich hats halt doch etwas schockiert, bei einem soooo primitiven Beispiel einen so argen Fehler zu bekommen. Wenn Pointer usw. im Spiel sind bekommt man manchmal halt komische Fehler(liegt dann aber IMMER am Benutzer:p). Aber bei printf...:rolleyes:


Grüße,
Harri

JackLemon 05.09.2004 01:25

oder allozieren, geht beides. hätte geschworen es hat was damit zu tun... :)

Flink 05.09.2004 11:09

Bei printf muss man darauf achten, dass jedem %-Formatierungszeichen ein genau passender Parameter anschließend folgt. Ansonsten kann es zu genau dem beschriebenen Fehler kommen.
Doch in diesem Beispiel kommt dies ja nicht vor. Der Compiler dürfte bei dem 'stdout'-Stream einen Fehler gemacht haben.

_m3 06.09.2004 12:17

1) Da fehlen ein paar Includes wie stdio.h und stdlib.h
2) Du moechtest die Rueckgabewerte von fprintf() und getch() abfragen und ueberpruefen
3) Solltest Du den Warning-Level Deines Compilers hinaufdrehen, dann gibts sicher mehr Infos.


Alle Zeitangaben in WEZ +2. Es ist jetzt 19:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag