malloc funzt net?
-
unsigned int length = strlen(source);
seid ihr sicher das das so richtig ist?
bei diesem funktionskopf?
int safeCreateString(char** target, const char source
hmm....
bye
tt
-
Was sollte denn Deiner Meinung nach anders sein?
-
Was sollte denn Deiner Meinung nach anders sein?
das die länge des char arrays mit als parameter übergeben wird
da ich davon ausgehe das sizeof(source) nur die größes eines pointers zurück gibt, würde man das vielleicht so char source[] übergeben sollte es gehen, da so eine komplette kopie des strings aufm stack gemacht wird
tschööö
tt
-
char* und char[] sind in einem Funktionskopf das gleiche.
Deinen Punkt mit sizeof verstehe ich allerdings nicht.
-
hmm..dann hab ich da sicher was verwechselt...ich für meinen teil bin da immer ziemlich misstrauisch und übergebe halt immer die anzahl mit über die parameterliste, vielleicht gewohnheit...irgendwelche gründe wirds sicher gehabt haben
tschööö
tt
-
Performance Gruende hat es, wenn du die Laenge an die Funktion uebergibst - denn dann muss kein strlen() ausgefuehrt werden, wenn du die Laenge schon kennst. Und wenn du sie nicht kennst, kann man ja strlen() problemlos selber aufrufern.
Aber dennoch ist der obrige Code OK.
-
jo der is ok..ich glaub ich hab strlen mit sizeof verwechselt
tschööö
tt
-
Aber dennoch ist der obrige Code OK.
Nope.
if(!target) return -1;
sollte wohl eher
if (!*target) return -1;
heißen
mfg
-
<edit>Muell</edit>
-
gast schrieb:
Aber dennoch ist der obrige Code OK.
Nope.
Stimmt. Du hast recht.