Ich lehre mich C von einem Buch und ich versuche ein Kreuzworträtsel zu erstellen. Ich muss eine Reihe von Strings erstellen, aber immer wieder Probleme bekommen. Außerdem weiß ich nicht viel über Array ...
Dies ist das Stück des Codes:
%Vor%Aber ich bekomme immer die Nachricht:
%Vor%Nicht sicher, was das Problem ist ... Ich habe versucht zu sehen, wie man ein Array von Strings erstellt, aber ohne Glück
Jede Hilfe wird sehr geschätzt,
Sam
%Vor%
word_array[0]
ist ein char
, während word1
ein char *
ist. Dein Charakter kann keine Adresse halten.
Ein Array von Strings könnte so aussehen:
%Vor%Wenn Sie lieber ein Array von Zeigern zu Ihren Strings haben möchten:
%Vor%Und dann:
%Vor%Vielleicht sollten Sie das lesen.
Die Deklaration
%Vor%erstellt ein Array aus drei Zeichen . Sie scheinen ein Array von Zeichen Zeigern deklarieren zu wollen:
%Vor%Sie haben jedoch ein ernsthafteres Problem. Die Deklaration
%Vor% erstellt ein Array von sechs Zeichen, aber Sie sagen ihm tatsächlich, dass es sieben Zeichen hat. Alle Zeichenfolgen haben ein zusätzliches Zeichen, '%code%'
, mit dem das Ende der Zeichenfolge angegeben wird.
Deklarieren Sie das Array auf Größe sieben:
%Vor%oder lassen Sie die Größe, und der Compiler wird es selbst herausfinden:
%Vor% Sie können malloc()
auch verwenden, um Speicher manuell zuzuweisen:
Wenn Sie nicht wissen (zur Codierungszeit), wie viele Strings sich in einem Array befinden und wie lang sie sein werden, ist dies ein guter Weg. Aber du musst den Speicher freigeben, wenn er nicht mehr benutzt wird (rufe free()
auf).