Hallo, ich möchte ein Feld in einem struct erstellen. nun funktioniert
dies leider nicht. kann mir jemad helfen oder hat ne Idee wie es
funktionieren könnte ?
MFG Cedric
Cedric D. schrieb:> Hallo, ich möchte ein Feld in einem struct erstellen. nun funktioniert> dies leider nicht.
Danke fuer die ausfuehrliche Fehlermeldung "funktioniert nicht".
Du hast die Fehlermeldng "error: assigning to an array from an
initializer list" sicher bei Google eingeworfen. Da kommt als erstes:
"You cannot assign directly to an array after its declaration." - noch
in der Uberschrift.
Also
Cedric D. schrieb:> feld1.spielfeld= { {1,1,1},{0,0,0},{2,1,0} };
Das ist eine Zuweisung eines Arrays und hat noch nie in C funktioniert.
leo schrieb:> Init in der Deklaration und gut ist.
Das ist die Definition (mit impliziter Deklaration)
Bei der (reinen) Deklaration gibt es noch keinen Speicher, in den
irgendwas abgelegt werden kann.
Array kann man nicht zuweisen, es darf nicht auf der linken Seite von =
stehen, alles andere darf dort stehen, das ist so weil... Gründe.
Probiers mal so:
Oder wenn Du das ganze struct in einem Rutsch mit Werten füllen willst
dann geht das sehr elegant mit einem compound literal für das ganze
struct, denn ein struct darf durchaus mit = zugewiesen werden:
Dirk B. schrieb:> Bei der (reinen) Deklaration gibt es noch keinen Speicher, in den> irgendwas abgelegt werden kann.
Er hat nirgendwo in dem Beispiel eine reine Deklaration, also verwirr
ihn damit jetzt (noch) nicht. mit der Zeile
1
tic_tac_toefeld1;
ist der Speicher angelegt, denn das ist eine Definition, und er kann
jetzt was reinschreiben.
Bernd K. schrieb:> Er hat nirgendwo in dem Beispiel eine reine Deklaration, also verwirr> ihn damit jetzt (noch) nicht.
Reiß doch meine Antworten nicht aus dem Zusammenhang. Ich hatte extra
die Behauptung von leo zitiert.
Hallo, vielen Dank für die Hilfe, einen Arrey so zu deklarieren
funktioniert bei mir auch, ich habe nur ein Problem damit dies in einer
Struktur in diesem Fall tickdackto zu tun.
zitter_ned_aso schrieb:> "struct" braucht man nicht, dafür aber zusätzliche geschweifte Klammern
Aussage kräftige Bezeichner auch nicht. Zusätzliche Klammern.... ne
glaube nicht, das die nötig sind.