strcmp -> segmentation fault
-
groovemaster schrieb:
Nein, ein char ist ein Byte.
nö, ein byte sind immer 8 bits
groovemaster schrieb:
Wieviel Bits allerdings ein char (Byte) hat, ist implementationsspezifisch.
deswegen ja. ein char ist mindestens 8 bits breit, darf aber auch mehr haben.
byte != char
-
net schrieb:
groovemaster schrieb:
Nein, ein char ist ein Byte.
nö, ein byte sind immer 8 bits
So ist's richtig. Immer einfach mal drauflos behaupten. Natürlich ohne Begründung oder Beleg. Dann hoffen, dass kein Durchblicker vorbeischaut und dich enttarnt.
Mit dem letzten Punkt hast du hier leider pech gehabt. Ich bin hier nämlich sicher nicht der einzige, der weiß, dass 1 Byte = 8bit im Umfeld von C++ nicht garantiert ist. Achso: den Beweis für meine Aussage findest du übrigens im C++ Standard Abschnitt 1.7/1.
-
HumeSikkins schrieb:
Ich bin hier nämlich sicher nicht der einzige, der weiß, dass 1 Byte = 8bit im Umfeld von C++ nicht garantiert ist. Achso: den Beweis für meine Aussage findest du übrigens im C++ Standard Abschnitt 1.7/1.
den begriff 'byte' (und dessen bedeutung) gab es sicher schon, als die autoren des c++ standards noch die wolle aus'm teddybären gezupft haben. den können die nicht mal eben umdefinieren.
-
Ich mach einfach ein malloc(255*sizeof(char)); draus und gut is
War sowieso ne Nachlässigkeit von mir.
-
Hallo,
zeig mir bitte mal eine allgemeingültige Definition von Byte die 1 Byte = 8bit vorschreibt. Ich habe hier viele verschiedene Definitonen. Einige schreiben "nearly always 8bit" andere "usually 8bit" wieder andere "amount of memory smaller than a word" oder "enough to represent one character of alphanumeric data".Und davon abgesehen: wir sind hier im *Standard*-C++ Forum und deshalb sind hier natürlich auch die Definitionen des C++ Standards am Relevantesten.
Tut mir leid, aber deine Aussage wird auch durch Teddybärbilder nicht richtiger.
-
net schrieb:
HumeSikkins schrieb:
Ich bin hier nämlich sicher nicht der einzige, der weiß, dass 1 Byte = 8bit im Umfeld von C++ nicht garantiert ist. Achso: den Beweis für meine Aussage findest du übrigens im C++ Standard Abschnitt 1.7/1.
den begriff 'byte' (und dessen bedeutung) gab es sicher schon, als die autoren des c++ standards noch die wolle aus'm teddybären gezupft haben. den können die nicht mal eben umdefinieren.
-
Genau und in dieser fernen Zeit, meinte man mit Byte zunächst nur 6 Bit. Das kannst du nicht einfach umdefinieren.
http://medic.bgu.ac.il/comp/course/defs/byte.html
Bye, TGGC (Für echte Fans)
-
Blue-Tiger schrieb:
wow, ihr habt recht!
danke, man lernt doch immer was dazu bzw. beseitigt alte 'vorurteile'edit: ich werd' ab jetzt nur noch 'octet' sagen :p
-
Hab das Problem behoben, bin zu sorglos mit den pointern umgegangen, konnte nur schief gehen
-
groovemaster schrieb:
otze schrieb:
dazu sag ich nur: AUA
Wieso AUA?
char* dir = (char*) malloc(255 * sizeof (char));
ist doch auch nicht falscher als
char* dir = (char*) malloc(255);
syntaktisch,stylistisch oder logisch falsch?
syntax ist richtig, mein compiler meckert nicht
logisch ist es auch richtig, er wollte ja auch ein 255 byte großes char-array haben
stylistisch ist es abzuraten,was die sache aber nicht falsch macht
-
otze schrieb:
stylistisch ist es abzuraten,was die sache aber nicht falsch macht
Wieso ist davon abzuraten? Ich bin zwar jemand, der eher dazu neigt, kompakten Code zu schreiben. Hier sehe ich aber keinen Anlass zum Meckern. Was ist, wenn jetzt jemand wchar_t benutzen möchte? Dann muss er zwangsläufig auf die sizeof Variante zurückgreifen. Und komm mir jetzt bitte nicht mit
wchar_t* dir = (wchar_t*) malloc(510);
oder ähnlichen Geschichten. Dass das falsch ist, sollte ja bekannt sein.
-
Was ist, wenn jetzt jemand wchar_t benutzen möchte?
Wenn wir von äpfeln reden, dann können wir auch gleich mit birnen anfangen.
mir ist klar, dass wenn der typ der zeichenkette T ist, man die größe*sizeof(T) nehmen muss, aber ich seh hier kein template, siehst du eins? klar, man könnte den code ja copy pasten und dann einfach das sizeof verändern, aber dann könnte man in dem fall auch genausogut ein sizeof in den kopierten code einfügen, oder etwa nicht?
-
Die Diskussion sollte man sinnvollerweise im C-Forum fortsetzen. In C++ ist malloc sowieso Schwachfug, da benutzt man new und hat das Problem nicht:
char *foo = new char[255]; //... delete[] foo;
-
mit new hatte ich es zuerst, aber dann war die Ausgabe vom programm nciht korrekt, hatte an andrer telle schon nen Fehler, auch wenn ich mir nicht sicher bin wo.
Hab die eine Funktion neu geschrieben, und diesmal die klasse string benutzt und alles geht.
-
otze schrieb:
Wenn wir von äpfeln reden, dann können wir auch gleich mit birnen anfangen.
Wieso Äpfel und Birnen? char und wchar_t verhalten sich zueinander eher wie kleine Äpfel zu grossen.
Naja, auch egal. string ist ja eh eine bessere Wahl.
-
groovemaster schrieb:
otze schrieb:
Wenn wir von äpfeln reden, dann können wir auch gleich mit birnen anfangen.
Wieso Äpfel und Birnen? char und wchar_t verhalten sich zueinander eher wie kleine Äpfel zu grossen.
hmm ich hätte doch nur das "was ist,wenn" quoten sollen
najut, dann hol ich das jetzt mal nach:
Was ist, wenn
wenn das wörtchen wenn nicht wär, dann wär mein vater millionär