Hallo zusammen!
Ich habe folgende Funktion:
Im Grunde sollen dem Array namen Einträge hinzugefügt werden.
Es funktioniert auch so, wie es soll.
Nur bei manchen Einträgen werden einfach irgendwelche Zeichen mit angehängt.
Ich vermute, das es daran liegt, dass das 0 Byte nicht angehängt wird. Daher wird nicht erkannt, wo der String aufhört.
Meine Frage nun, wie kann ich das Problem lösen?
strcpy geht nicht, da die Strings unterschiedlich lang sind, und es so zu Problemen kommt. Ich hab auch schon probiert, ein Zeichen bei strncpy mehr zu kopieren, doch auch hier hängt sich das Programm komplett auf.
Wo liegt mein Fehler?
Danke!
Ich habe folgende Funktion:
Code:
int add(char buffer[], char *namen[])
{
int i = 0;
for(i=0; i<86; i++)
{
if(strcmp(namen[i], "0") == 0)
{
namen[i] = malloc(strlen(buffer));
printf("%d\n", strlen(buffer));
strncpy(namen[i], buffer, strlen(buffer));
return i;
}
}
return -1;
}
Im Grunde sollen dem Array namen Einträge hinzugefügt werden.
Es funktioniert auch so, wie es soll.
Nur bei manchen Einträgen werden einfach irgendwelche Zeichen mit angehängt.
Ich vermute, das es daran liegt, dass das 0 Byte nicht angehängt wird. Daher wird nicht erkannt, wo der String aufhört.
Meine Frage nun, wie kann ich das Problem lösen?
strcpy geht nicht, da die Strings unterschiedlich lang sind, und es so zu Problemen kommt. Ich hab auch schon probiert, ein Zeichen bei strncpy mehr zu kopieren, doch auch hier hängt sich das Programm komplett auf.
Wo liegt mein Fehler?
Danke!