JLI Spieleprogrammierung Foren-Übersicht JLI Spieleprogrammierung

 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen 
 medals.php?sid=c48c75e0e7ca3113863e7af4c94344ecMedaillen   RegistrierenRegistrieren   ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Probleme mit Strukturen und Arrays

 
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
cHaoS
Mini JLI'ler



Anmeldedatum: 14.06.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 16.06.2007, 17:28    Titel: Probleme mit Strukturen und Arrays Antworten mit Zitat

Hi, ich bins wieder und ich hab auch mal wieder ein saublödes Problem mitgebracht, diesmal mit Strukturen.

ich habe folgende Struktur definiert:

CPP:
struct Vector2D
{
    int x;
    int y;
};


In einer anderen CPP datei, in die ich die Headerdatei eingebunden hatte, in der die Struktur definiert ist, wollte ich dann ein Array aus dieser Struktur erstellen:

CPP:
Vector2D punkt1 = {10, 10};
Vector2D punkt2 = {60, 10};
Vector2D punkt3 = {60, 110};
Vector2D punkt4 = {10, 110};

Vector2D zentrum = {35, 60};

Vector2D punkte[4];

punkte[0] = punkt1;
punkte[1] = punkt2;
punkte[2] = punkt3;
punkte[3] = punkt4;


Jedoch gibt der mir in jeder Zeile, in der ein Punkt dem Array übergeben werden soll Folgende Fehlermeldung aus:

error C2501: 'punkte' : missing storage-class or type specifiers
error C2371: 'punkte' : redifinition; different basic types
error C2440: 'initializing' : cannot convert from 'Vector2D' to 'int[]' bzw. 'int[1]' bzw int[2] bzw int[3]

und zur ersten werteübergabe sagt er noch:

error C2466: cannot allocate an array of constant size 0

Ich hab keinen Plan, was genau ich falsch gemacht habe, irgendwelche ideen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
GreveN
JLI Master


Alter: 37
Anmeldedatum: 08.01.2004
Beiträge: 901
Wohnort: Sachsen - Dresden
Medaillen: Keine

BeitragVerfasst am: 16.06.2007, 18:48    Titel: Antworten mit Zitat

Irgendwo noch ein Feld namens "punkte" angelegt?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Yahoo Messenger MSN Messenger
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 16.06.2007, 18:51    Titel: Re: Probleme mit Strukturen und Arrays Antworten mit Zitat

cHaoS hat Folgendes geschrieben:

und zur ersten werteübergabe sagt er noch:

error C2466: cannot allocate an array of constant size 0


erläute mal genauer...
hier??
CPP:
Vector2D punkt1 = {10, 10};
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 16.06.2007, 19:14    Titel: Antworten mit Zitat

das problem liegt bereits hier:

CPP:
Vector2D punkt1 = {10, 10};


wenn es dir nur um die lösung geht, dann:

CPP:
struct Vector2D
{
    Vector2D(void) : x(0), y(0) {}
    Vector2D(int _x, int _y) : x(_x), y(_y) {}
    int x;
    int y;
};

[...]

Vector2D punkt1(10, 10);
Vector2D punkt2(60, 10);
Vector2D punkt3(60, 110);
Vector2D punkt4(10, 110);

Vector2D zentrum(35, 60);

Vector2D punkte[4];

punkte[0] = punkt1;
punkte[1] = punkt2;
punkte[2] = punkt3;
punkte[3] = punkt4;
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
David
Super JLI'ler


Alter: 39
Anmeldedatum: 13.10.2005
Beiträge: 315

Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 00:40    Titel: Antworten mit Zitat

Maxim hat Folgendes geschrieben:
das problem liegt bereits hier:

CPP:
Vector2D punkt1 = {10, 10};



Das ist überhaupt kein Problem. Viel interessanter wären die konkreten Zeilen wo die Fehler auftreten...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Maxim
Senior JLI'ler



Anmeldedatum: 28.03.2004
Beiträge: 249

Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 07:59    Titel: Antworten mit Zitat

naja, ich habe es einfach mit VC 2005 Express kompiliert und er meldet Fehler genau an diesem Punkt. Aber wieso das ist, kann ich mir nicht erklären, das es ja ok aussieht, geht aber nicht.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Xibus
Junior JLI'ler


Alter: 32
Anmeldedatum: 18.02.2007
Beiträge: 91
Wohnort: Deutschland -> NRW -> OWL -> Paderborn -> Salzkotten
Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 08:23    Titel: Antworten mit Zitat

Das hier:
CPP:
struct Vector2D
{
    int x;
    int y;
};

void main()
{
Vector2D punkt1 = {10, 10};
Vector2D punkt2 = {60, 10};
Vector2D punkt3 = {60, 110};
Vector2D punkt4 = {10, 110};

Vector2D zentrum = {35, 60};

Vector2D punkte[4];

punkte[0] = punkt1;
punkte[1] = punkt2;
punkte[2] = punkt3;
punkte[3] = punkt4;
}


funktioniert fehlerfrei muss also irgendwie an der reihenfolge liegen...
_________________
Signatur

Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
manu
Super JLI'ler


Alter: 35
Anmeldedatum: 09.03.2006
Beiträge: 327
Wohnort: allgäu (DE)
Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 10:41    Titel: Antworten mit Zitat

jup, vielleicht hat der autor versucht das hier:

CPP:
Vector2D punkt1 = {10, 10};
Vector2D punkt2 = {60, 10};
Vector2D punkt3 = {60, 110};
Vector2D punkt4 = {10, 110};

Vector2D zentrum = {35, 60};

Vector2D punkte[4];

punkte[0] = punkt1;
punkte[1] = punkt2;
punkte[2] = punkt3;
punkte[3] = punkt4;


außerhalb einer funktion zu machen..
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
cHaoS
Mini JLI'ler



Anmeldedatum: 14.06.2007
Beiträge: 7

Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 12:07    Titel: Antworten mit Zitat

oha, das muss man innerhalb einer funktion machen?
Oh weia, merke echt, dass mir die erfahrung fehlt...
Jetzt klappts, vielen lieben Dank! Very Happy
_________________
Ich bin der Schmetterling, ich bin der Sturm.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
DirectXer
Dark JLI'ler



Anmeldedatum: 05.02.2005
Beiträge: 1201
Wohnort: Köln
Medaillen: Keine

BeitragVerfasst am: 17.06.2007, 20:01    Titel: Antworten mit Zitat

jo, das grundkonzept ist folgendes:

Speicherallokation- und Erstellen der glob. Variablen kann man außerhalb des Funktionsscopes machen. Anweisungen wie bei dir oben aber sind 2 Befehle, von denen einer ein direkter Befehl (Zuweisung) ist, der ausgeführt werden muss und nich zu den oben gen. 2 dingen gehört. Grundsätzlich verhält sich dein Bsp. nämlich so:

1. Erstellen der glob. Punkt Variablen (im Data-Segment)
2. Zuweisung der beiden Werte in den {}-Klammern

Diese Zuweisung ist eben ein seperater Befehl, der nicht bei der Initialisierung ausgeführt werden kann. Dagenen müsste das Bsp. von Maxim mit dem Konstruktor gehen, da dies der Initialisierung zugehört

Gruß DXer
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    JLI Spieleprogrammierung Foren-Übersicht -> Entwicklung Alle Zeiten sind GMT
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2005 phpBB Group
Deutsche Übersetzung von phpBB.de

Impressum