Zeiger übergeben an Funktion mit strcat
-
Schönen guten Abend!
Ich versuche vergeblich mit den Zeigern in C zurechtzukommen. Vielleicht könnt ihr mir irgendwie helfen diesen Code in Ordnung zu bekommen. Das Problem ist, dass der gcc in Zeile 10 meckert: "10:2: Warnung: Übergabe des Arguments 1 von »strcat« von inkompatiblem Zeigertyp".
Außerdem tritt dann ein Speicherfehler auf.#include <stdio.h> #include <string.h> #include <stdlib.h> #define BUF 255 void eingabe(char **str) { str = realloc(str,10); strcat(str,"Halt dich fest"); //"Warnung: Übergabe des Arguments 1 von »strcat« von inkompatiblem Zeigertyp" } int main() { char *str=NULL; eingabe(&str); printf("%s",str); free(str); return 0; }
Ich würde mich freuen, wenn ihr mir helft!
Saftmensch
-
Saftmensch schrieb:
void eingabe(char **str) { *str = realloc(*str,10); strcat(*str,"Halt dich fest"); }
-
__-- schrieb:
Saftmensch schrieb:
void eingabe(char **str) { *str = realloc(*str,10); strcat(*str,"Halt dich fest"); }
Danke, das hat geholfen!
-
realloc solltest du so nicht aufrufen! http://www.c-plusplus.net/forum/viewtopic.php?t=206606
-
Saftmensch schrieb:
Danke, das hat geholfen!
Ja wirklich?
Sollte wohl eher*str = realloc(*str,15);
heissen.
-
Wutz schrieb:
Saftmensch schrieb:
Danke, das hat geholfen!
Ja wirklich?
Sollte wohl eher*str = realloc(*str,15);
heissen.
Ja, die "10" war noch aus einem Test, die war nur zur Demonstration...