ich nur ein Programm geschrieben:Kann nicht scheinen, char gesetzt * richtig
int main() {
char* test = malloc(5);
*test = "testc";
printf("Test=%c",test[4]);
}
Was ich erwarten würde mir „c“ geben, aber es gibt mir nichts bestenfalls, und einen Segmentierungsfehler im schlimmsten Fall. Was mache ich möglicherweise falsch? Muss ich eine separate Variable erstellen und strncpy()
es ist in? Ich habe auch versucht:
int main() {
char* test = malloc(5);
char* test2 = "test"
strncpy(test,test2,4);
}
Das verhält sich richtig, aber scheint sorta lang. Mache ich hier etwas falsch?
Diese Sie nicht einmal übersetzt haben, oder zumindest sollte es gegeben haben, eine Warnung schreiben soll. Warnungen nicht ignorieren, * reparieren * sie. Vor allem, um eine Frage zu stellen. –
Sie haben 'strncpy' falsch verwendet. Es wäre gut, die Verwendung dieser Funktion zu vermeiden, sie ist fehleranfällig und Sie müssen ihre Dokumentation sorgfältig lesen, um Fehler in Ihrem Code zu vermeiden. Es gibt immer einen besseren Weg als Strncpy. –