Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

1

29.12.2006, 16:52

Falscher Arraydurchlauf?

Hallo zusammen,

ich habe schon wieder ein Problem, welches ich nicht gelöst bekomme.

Ich lege mir folgendes Array an:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
9
10
#define FIELD_COUNT_X   4
#define FIELD_COUNT_Y   3

typedef struct _placement
{
    int  bitmap_number;
    BOOL set;
}PLACEMENT;

PLACEMENT           placement[FIELD_COUNT_X][FIELD_COUNT_Y];

Nun möchte ich alle Member auf einen Anfangswert setzen. Dies klappt bei allen, bis auf den aller letzen (dort wird die Variable "set" nicht auf FALSE gestellt). Hier der Code:

C-/C++-Quelltext

1
2
3
4
5
6
7
8
            for(x = 0 ; x < FIELD_COUNT_X ; x++)
            {
                for(y = 0 ; y < FIELD_COUNT_Y ; y++)
                {
                    placement[x][y].bitmap_number = NULL;
                    placement[x][y].set = FALSE;
                }
            }

Kann mir jemand sagen, warum des nicht bei allen Membern klappt?

Sn3aK87

Treue Seele

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

2

29.12.2006, 16:54

bool wird klein geschrieben nicht BOOL!!!!

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

29.12.2006, 16:55

Zitat von »"Sn3aK87"«

bool wird klein geschrieben nicht BOOL!!!!

Das ist offensichtlich C, da gibt es kein bool!!!!!!!!!1111111elfeins
BOOL ist ein typedef.

Der Code ist in Ordnung.
Muss eigentlich klappen.

Sn3aK87

Treue Seele

Beiträge: 110

Wohnort: Freiberg, nähe Dresden

Beruf: Informatikstudent TU Dresden ab 1.10.2007

  • Private Nachricht senden

4

29.12.2006, 17:00

Zitat von »"David Scherfgen"«

Zitat von »"Sn3aK87"«

bool wird klein geschrieben nicht BOOL!!!!

Das ist offensichtlich C, da gibt es kein bool!!!!!!!!!1111111elfeins
BOOL ist ein typedef.

Der Code ist in Ordnung.
Muss eigentlich klappen.


ja schon okay :oops: ich nehms zurück :!: :?

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

5

29.12.2006, 17:03

Mit folgendem Code klappt es !?!

C-/C++-Quelltext

1
2
3
4
5
6
7
8
            for(x = 0 ; x < FIELD_COUNT_X+1 ; x++)
            {
                for(y = 0 ; y < FIELD_COUNT_Y ; y++)
                {
                    placement[x][y].bitmap_number = NULL;
                    placement[x][y].set = FALSE;
                }
            }


Soll ich dann diese Variaten nehmen, oder was würdet ihr jetzt machen?

EDIT:// Wenn ich jetzt auch noch folgende Zeile vor die for-Schleife schreibe, dann werden alle Zahlen Schwachsinn!

C-/C++-Quelltext

1
srand((unsigned)(time(NULL)));

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

6

29.12.2006, 17:31

Re: Falscher Arraydurchlauf?

Zitat von »"spacegaier"«

Dies klappt bei allen, bis auf den aller letzen (dort wird die Variable "set" nicht auf FALSE gestellt). Hier der Code:


Welches isn deiner Meinung nach der letzte Eintrag?
@D13_Dreinig

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

7

29.12.2006, 17:36

Bei der normalen Variante wäre es

C-/C++-Quelltext

1
placement[3][2].set
set sollte ja eigentlich auf FALSE gesetzt werden, hat aber immer einen zufälligen Wert.

Des komische ist auch die Zählervariablen erhöhen sich gar nicht !?!

David_pb

Community-Fossil

Beiträge: 3 886

Beruf: 3D Graphics Programmer

  • Private Nachricht senden

8

29.12.2006, 17:38

Tatsächlich? Kann ich mir garnich vorstellen. Wirf mal den Debugger an, das hilft meist! :-)
@D13_Dreinig

spacegaier

Alter Hase

  • »spacegaier« ist der Autor dieses Themas

Beiträge: 572

Beruf: Student

  • Private Nachricht senden

9

29.12.2006, 17:55

Ist aber so: Hier der Beweis

10

29.12.2006, 18:30

Naja das da sowas einen Booleanischen Wert vollkommen fremdes drin stehen kann, liegt einfach daran, das BOOL als int definiert ist. Nimm bool und du hast entweder false oder true drin stehen. So ... dann ist das +1 in der for mal eigentlich falsch und sollte normal ne zugriffsverletzung geben ... oder ich hab was übersehen :D
Devil Entertainment :: Your education is our inspiration
Der Spieleprogrammierer :: Community Magazin
Merlin - A Legend awakes :: You are a dedicated C++ (DirectX) programmer and you have ability to work in a team? Contact us!
Siedler II.5 RttR :: The old settlers-style is comming back!

Also known as (D)Evil

Werbeanzeige