array verständnis frage

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

array verständnis frage

Beitrag von diGGa »

hi
warum wirft mir dashier:

Code: Alles auswählen

Dim blub(5)
blub(1) = 5
Dim blub(10)
blub(1) = 10
For i=0 To 5
        Debug blub(i)
Next 
im debugger 5 0en aus? ich dachte wenn man dim erneut aufruft wird das array erneut dimensioniert und der inhalt gelöscht. aber anscheinend nimmt es auch keine daten mehr auf?
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Code: Alles auswählen

Dim blub(5)
blub(1) = 5
Dim blub(10)
blub(1) = 20
For i=0 To 5
        Debug blub(i)
Next
Debug "--------"
blub(1) = 20
For i=0 To 5
        Debug blub(i)
Next
:?
Fabio
Beiträge: 234
Registriert: 29.08.2004 14:47

Beitrag von Fabio »

Hmmmm, anscheinend muss man das Array erst einmal auslesen bevor
man es in der grösse verändert :shock:

Code: Alles auswählen

Dim blub(5)
blub(1) = 5

For i=0 To 4
  Debug blub(i)
Next

Dim blub(10)
blub(1) = 10
For i=0 To 5
  Debug blub(i)
Next
I7 2600K; 8 GB RAM ; Win10 Pro x64 | NVidia GTX 750 TI 2048MB ; Realtec OnBoard Sound;
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

Kannste uns auch sagen warum es dann geht??
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Das ist ein von Fred für V4 schon gefixter Bug /:->
Benutzeravatar
roherter
Beiträge: 1407
Registriert: 10.04.2005 18:58
Kontaktdaten:

Beitrag von roherter »

aha
Purebasic 5.0 32bit und 64 bit

I'm back from hell
Benutzeravatar
Macros
Beiträge: 1361
Registriert: 23.12.2005 15:00
Wohnort: Olching(bei FFB)
Kontaktdaten:

Beitrag von Macros »

Ich hab ein bisschen rumprobiert, und es sieht so aus als ob
der erste Zugriff auf das Array fehlschlägt (nach Dim() ),
alle folgenden normal arbeiten. :bluescreen:
Benutzeravatar
remi_meier
Beiträge: 1078
Registriert: 29.08.2004 20:11
Wohnort: Schweiz

Beitrag von remi_meier »

Ich könnte dich jetzt mit Details vollreden wann, wie und wo der Bug auf-
tritt, aber ich lass es mal. Allgemein kann gesagt werden, dass der Bug
normalerweise nicht auftritt, wenn man nach dem Zuweisen eines Wertes
zu einem Array nicht gleich wieder das Array neu dimensioniert und wieder
direkt danach füllt. (Mit direkt meine ich, ohne anderen Code dazwischen)
Ein einfaches

Code: Alles auswählen

Dim blub(5) 
blub(1) = 5 
If #True:EndIf
Dim blub(10) 
blub(1) = 10 
For i=0 To 5 
        Debug blub(i) 
Next
sollte vorerst genügen.
Benutzeravatar
diGGa
Beiträge: 249
Registriert: 01.04.2005 11:00
Kontaktdaten:

Beitrag von diGGa »

ach sehr gut.. hatte das ganze nur schnell eingetippt um zu wissen ob ich so arbeiten kann.. aber geht ja anscheinend weil code wird schon dazwischen sein ;)
Antworten