myGully.com

myGully.com (https://mygully.com/index.php)
-   Programmierung (https://mygully.com/forumdisplay.php?f=67)
-   -   Falsche Ausgabe ( C ) (https://mygully.com/showthread.php?t=2161832)

indoh 13.11.10 17:17

Falsche Ausgabe ( C )
 
Kann mir mal wer erklären, warum wenn ich als Beispieleingabe

abc
def
ghi

eingebe, ich als Ausgabe nur

abc

bekomme?

char buffer[102];
char *ptr;
ptr = (char *) malloc(1 * sizeof(char *));
}
char *speicher;
speicher = (char *) malloc(102 *sizeof(char));
}
int i = 1;
int k = 0;
while(fgets(buffer, 102, stdin) != NULL) {
int j = 0;
while(j < 102) {
speicher[k] = buffer[j];
j++;
k++;
}
ptr[i-1] = speicher[(i * 102) - 102];
i++;
ptr = (char *) realloc(ptr, i * sizeof(char *));
speicher = (char *) realloc(speicher, i * 102 * sizeof(char));


//ausgabe
}
printf("%s\n", speicher);

urga 13.11.10 21:28

a) poste mal den completten code. da gehen mehrere geschweiften klammern zu bei denen der entsprechende beginn fehlt.
b) verwende das
Code:

code
tag!

Nava001 18.11.10 22:22

ptr = (char *) malloc(1 * sizeof(char *));
Ist Käse da sizeof(char *) immer 4 byte sind auf 32 Bit OS.

fget hört bei einem \n auf zu lesen. Deine Eingabe abc (enter) schaut so aus abc\r\n.


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:24 Uhr.

Powered by vBulletin® (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.