Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (ANSI-Standard) » array in einem struct??

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
28.04.2008, 02:35 Uhr
~danhof
Gast


Hallo,
ich habe da ein Problem. Bin leider C++ Neuling. Ist es nicht möglich in einem struct ein Array abzuspeichern? Hier mal mein Code:


C++:
typedef int zustand[9];                   // ein Zustand ist ein  Array
struct queueknoten
{
    zustand data;                            // hier wird der Knoten gespeichert
    queueknoten *next;                       // Verknüpfung zum Nachfolger
};
queueknoten *anker = 0;                      // Anfang der Liste
.
.
.
// Neues Element für die Liste erzeugen:
            queueknoten *node = new queueknoten;
            node->data = startzustand;         // Besetze die Daten
            node->next = anker;                // Hänge die bisherige Liste an
            anker = node;                      // Setze den Anfangspunkt hierher




Genau hie rkommt die Fehlermeldung:
ISO C++ forbids assignment of arrays
Wie kann ich das lösen? oder welche andere möglichkeiten gibt es?
Danke im Voraus

Dieser Post wurde am 28.04.2008 um 09:08 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
28.04.2008, 08:55 Uhr
stephanw
localhorst


Wenn das der Compiler sagt, wird er wohl recht haben

Aber Du kannst einfacherweise std::vector<int> nehmen.


C++:
#include <vector>

struct QueueNode
{
  std::vector<int> state;
  QueueNode* next;
};

QueueNode* pNode  = new QueueNode; // delete nicht vergessen !

std::vector<int> state;
state[0] = 123;
...
pNode->state = state;

...


--
Reden ist Schweigen und Silber ist Gold.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
28.04.2008, 08:55 Uhr
ao

(Operator)


Du kannst ein Array nicht zuweisen. Möglichkeiten:

1. Elementweise zuweisen:

C++:
for (int i = 0; i < 9; i++)
    node->data[i] = 0;


2. Speicher initialisieren:

C++:
memset (node->data, 0, sizeof (node->data));  // ist hoffentlich richtig so :D


3. Anstelle des C-Arrays eine passende C++-Containerklasse verwenden (z.B. std::vector<int>). Das ist vermutlich die beste Lösung.

Ja, ich weiß, du bist Anfänger, aber auch Anfänger dürfen sich mit "richtigen" Techniken beschäftigen und müssen nicht, nur weil sie Anfänger sind, erst mal mit dem Faustkeil programmieren.

Dieser Post wurde am 28.04.2008 um 08:56 Uhr von ao editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
28.04.2008, 09:07 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


vor allem ist so eine liste eher C als C++ ;-)
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ C / C++ (ANSI-Standard) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: