Probleme mit Funkionen aus string.h
-
Scheppertreiber schrieb:
jetzt muß ich Ehrenworten und ab in die Badewanne
Als ob ich in der Not nichtmal die man-Tags verwenden könnte (man: strdup). Dort steht aber, dass das eine POSIX-Erweiterung ist. Bitte zwei Etagen höher absteigen.
-
char *strdup(const char *str) { char *p = NULL; if (str) if (p = malloc(sizeof(char) * (strlen(str) + 1))) strcpy(p, str); return p; }
Stellt euch nicht so an. Kann man sich auch selber basteln.
-
--- schrieb:
Stellt euch nicht so an. Kann man sich auch selber basteln.
Da mach ich lieber ein Array draus, spart Tipparbeit.
-
mngbd schrieb:
--- schrieb:
Stellt euch nicht so an. Kann man sich auch selber basteln.
Da mach ich lieber ein Array draus, spart Tipparbeit.
Lässt sich aber nicht reallozieren.
-
--- schrieb:
Lässt sich aber nicht reallozieren.
Und an die Wand hängen kann man's auch nicht.
-
KoenigGunther schrieb:
p = strtok('\0', ", ");
'\0' ist etwas anderes als NULL
'\0' ist das Zeichen mit dem Wert 0 (als Kennung für das Stringende verwendet)
NULL ist der Wert für einen ungültigen oder nicht definierten Zeiger.
-
Vom Sinn hast du natürlich Recht, aber rein funktionell sollte beides auf das gleiche hinauslaufen.
Schließlich ist
NULL
:#define NULL 0
oder
#define NULL ((void *) 0)
Beides evaluiert letztendlich zu 0. Genau wie
'\0'
zu 0 evaluiert.
-
Das ist schon klar.
Trotzdem deutet es darauf hin, das er das nicht richtig verstanden hat.
-
Vielen Dank für die vielen Antworten!
Ich komme nicht aus der C-Welt, aber die Geschichte mit dem Array in dem ich rumschreiben darf, habe ich verstanden1a!
-
DirkB schrieb:
'\0' ist etwas anderes als NULL
Ja, das kommt von dem angegebenen Link. Ich würde das nicht so schreiben. Ich wollte nur fix ein Minimalbeispiel