So habe ich eine Struktur "Sequenz", die ein char * drin hat. Wenn ich versuche, eine Sequenz zu erstellen, segne ich jedes Mal, wenn ich versuche, das Zeichen zu ändern. Hier ist der zugehörige Code. Die Struktur:Segfault beim Zuweisen zu char * in Struktur
typedef struct _sequence {
unsigned int length;
unsigned char* bytes;
} Sequence;
Der Konstruktor:
Sequence* newSequence(unsigned char firstByte) { //Creates new sequence, allocates memory
printf("Creating new Sequence\n");
Sequence* seq = (Sequence*)malloc(sizeof(Sequence));
printf("Have new sequence\n");
seq->length = 1;
printf("Set length\n");
seq->bytes[0] = firstByte;
printf("Set variables\n");
return seq;
}
Jetzt habe ich eine Hauptfunktion hier nur zu Testzwecken, diese Datei am Ende nicht eine Hauptfunktion hat. Aber hier ist was ich zum Testen verwendet:
int main() {
char test[] = "ab";
printf("Testing sequences!\n");
Sequence* newSeq = newSequence(test[0]);
printf("Made new sequence!\n");
outputSequence(newSeq, stdout);
printf(" <-- new Sequence created\n");
return 0;
}
Die printfs sind wieder zu Testzwecken. Es druckt immer den ganzen Weg bis zu "Set length \ n" im Konstruktor, dann segfaults. Was mache ich falsch? Vielen Dank!
Dies ist in der Linie von dem, was ich dachte, war falsch, aber war sich nicht sicher. Danke, dass du es so gut erklärt hast. Ich werde die Antwort abfragen, sobald die Mindestzeit verstrichen ist. –