G
schnedel schrieb:
irgenwo sollte es aber doch vermerkt werden. Wenn ich nach "malloc" "free" aurfrufe wird doch der ganze speicher den ich mir vorher mit malloc geholt hab freigegeben, ohne dass ich die exakte länge angebe.
Irgendwo wird das schon abgespeichert. Aber das weiss nur dein Speichermanager und es gibt afaik keine Standard Funktion um das zu ermitteln. Compilerspezifisch gibts da allerdings schon was.
Bashar schrieb:
Naja nicht ganz. Ein C-String kann keine Nullen enthalten, ein std::string dagegen schon.
Hmm, dann kannst du dir ja merken, wie viele Nullzeichen ignoriert werden sollen, bis das entscheidende kommt. Dabei fällt mir auf, dass c_str() dann ja uU nicht zufrieden stellend arbeitet. Nochmals, hmm.
Bashar schrieb:
Auch ist vorgeschrieben, dass die length()-Operation auf einem std::string in konstanter Zeit abläuft
Das war mir so gar nicht bekannt. Ich dachte eigentlich, dass das nicht zwingend vorgeschrieben wird.