2d int feld in einer struktur

OP #6162107
Lesenswert?
• ▲
▼
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
typedef struct
2
{
3
  int spielfeld[3][3];
4
}tic_tac_toe;
5

6
int main()
7
{
8
  tic_tac_toe feld1;
9
  feld1.spielfeld= { {1,1,1},{0,0,0},{2,1,0} };  
10
}
Gast #6162127
Lesenswert?
• ▲
▼
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
1
#include <stdio.h>
2
  int spielfeld[3][3]= { {1,1,1},{0,0,0},{2,1,0} };  ;
3

4
int main()
5
{
6
  printf("2,1=%d\n", spielfeld[2][1]);
7
}

Init in der Deklaration und gut ist.

leo
#6162185
Lesenswert?
• ▲
▼
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:
1
    memcpy(feld1.spielfeld, (int[3][3]){{1,1,1},{0,0,0},{2,1,0}}, sizeof(int[3][3]));

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:
1
    feld1 = (tic_tac_toe){
2
        .spielfeld = {{1,1,1},{0,0,0},{2,1,0}}
3
    };

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.