Unterschied zwischen char *c und char c[]
-
EOP schrieb:
Angefangen von "Unschöner Umgangston" (anscheinend gelöscht)
-
Ich frage mich, weshalb mir gcc mit Wall das problemlos kompiliert!
#include <stdio.h> int main() { char *a = "Hallo"; printf("%c\n", a[1]); return 0; }
-
Auf den String elementweise zugreifen ist erlaubt. Nur das veraendern ist undefiniert.
Dabei tritt kein Fehler zur Compile-Zeit auf aber bei der Laufzeit.
-
Danke, das endet bei mir tatsächlich mit einem Speicherzugriffsfehler!
Aber soweit ich weiss, ist das bei Funktionsparametern wo ein Array übergeben wird und beim Argument so getan wird, es sei ein Zeiger, kein Problem! Deswegen war ich verwirrt.Liebe Grüße
Steffo
-
Ja, bei der Uebergabe an eine Funktion, die den String veraendert, muss man davon ausgehen, dass der Client der Funktion einen Pointer auf ein char Array und nicht auf eine String Konstante uebergibt.
Sonst crasht das Programm.
-
C ist schon eine verdammt gefährliche Sprache, wie ich mal wieder feststellen musste.
-
C ist nur in den Händen eines Idioten gefählich.
-
314159265358979 schrieb:
C ist nur in den Händen eines Idioten gefählich.
Die Aussage von dir ist aber auch idiotisch, also Finger weg von C.
-
314159265358979 schrieb:
C ist nur in den Händen eines Idioten gefählich.
Mir ist vollkommen klar, dass diese Stammtischparole kommen musste, aber sie ist eben nur eine Parole, die Aussage impliziert nämlich, dass derjenige, der die Parole ausspricht, keine Bugs in Programmen einbaut. Da das nun wirklich nicht sein kann, bedeutet das wiederum, dass derjenige selbst ein Idiot ist.
-
Steffo schrieb:
die Aussage impliziert nämlich, dass derjenige, der die Parole ausspricht, keine Bugs in Programmen einbaut. Da das nun wirklich nicht sein kann, [...]
Bei Pi kann das schon sein. Der schreibt ja nie Programme über hundert Zeilen Grösse und schon gar nicht in C. Er macht halt das, was er immer tut: Gelesenes wiedergeben.
-
Ethon schrieb:
Die Aussage von dir ist aber auch idiotisch
Exactly, that's teh point.
Ethon schrieb:
also Finger weg von C.
Keine Angst, die Steinzeit fasse ich nicht an.
Steffo schrieb:
die Aussage impliziert nämlich, dass derjenige, der die Parole ausspricht, keine Bugs in Programmen einbaut.
Nö. Deine Aussage war übrigens nicht minder idiotisch