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
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
|
Anzeige
|
2d int feld in einer strukturHallo, 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
Gast
#6162122
Cedric D. schrieb: > nun funktioniert dies leider nicht. Was funktioniert denn nicht?
Gast
#6162127
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
Init in der Deklaration und gut ist. leo 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
ist der Speicher angelegt, denn das ist eine Definition, und er kann jetzt was reinschreiben.
Gast
#6162225
typedef ist eine Deklaration ;-) 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.
Gast
#6162385
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. Cedric D. schrieb: > typedef struct > { > int spielfeld[3][3]; > }tic_tac_toe; > > int main() > { > struct tic_tac_toe feld1 = { {1,1,1},{0,0,0},{2,1,0} }; > }
Gast
#6162569
"struct" braucht man nicht, dafür aber zusätzliche geschweifte Klammern
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. Antwort schreibenBitte melde dich an, um einen Beitrag zu schreiben. |
Anzeige
|