Größenbegrenzung für statische Arrays?

Fragen und Bugreports zur PureBasic 4.0-Beta.
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Größenbegrenzung für statische Arrays?

Beitrag von Kekskiller »

Gibt es sowas wie eine Größenbegrenzung für statische Arrays? Wenn ich mehr als 128 verschiedene Einträge ansprechen will, gibt PB mir einen Array-Index out of Boundex...

Code: Alles auswählen

Structure x
  a.c[256]
EndStructure

Global b.x, c.c

For c = 0 To 255
  Debug "index: " + Str(c) + " / wert: " + Str(b\a[c])
Next
Habe meinen Code nach diesem Fehler umgestellt, dennoch find ich das etwas strange.[/code]
Benutzeravatar
HeX0R
Beiträge: 2959
Registriert: 10.09.2004 09:59
Computerausstattung: AMD Ryzen 7 5800X
96Gig Ram
NVIDIA GEFORCE RTX 3060TI/8Gig
Win10 64Bit
G19 Tastatur
2x 24" + 1x27" Monitore
Glorious O Wireless Maus
PB 3.x-PB 6.x
Oculus Quest 2
Kontaktdaten:

Beitrag von HeX0R »

Das Problem ist wohl eher, dass du c als CHARACTER deklarierst.
Nimm ein Long und alles wird gut ;)
Kekskiller
Beiträge: 752
Registriert: 14.09.2004 21:39
Kontaktdaten:

Beitrag von Kekskiller »

Klappt auch nicht :( . Geht mit gar keinem Datentyp.
Benutzeravatar
STARGÅTE
Kommando SG1
Beiträge: 6999
Registriert: 01.11.2005 13:34
Wohnort: Glienicke
Kontaktdaten:

Beitrag von STARGÅTE »

Also bei mir gehts es mit LONGs

Allerdingt erhalte ich auch eine Fehlermedlung, aber nur wnmen mein Array so an die 10'000 Felder hat.

Vllt mag aber 4.0 auch nicht das die ArrayFelder nicht gefüllt sind und du sie trotzdem abfragst, vllt geht ja das:

Außerdem kannst du auch die Arraygröße auf 255 setzten (vllt auch ein fehler) denn 256 gibt es ja bei .c nicht

Code: Alles auswählen

Structure x 
  a.c[255] 
EndStructure 

Global b.x, c.c 

For c = 0 To 255 
  b\a[c] = 0
  Debug "index: " + Str(c) + " / wert: " + Str(b\a[c]) 
Next
PB 6.01 ― Win 10, 21H2 ― Ryzen 9 3900X, 32 GB ― NVIDIA GeForce RTX 3080 ― Vivaldi 6.0 ― www.unionbytes.de
Aktuelles Projekt: Lizard - Skriptsprache für symbolische Berechnungen und mehr
Benutzeravatar
mk-soft
Beiträge: 3700
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

Code: Alles auswählen


Structure x
  ;a.c[255] <- Fehler / Index = 0 .. 254  
  a.c[256]
EndStructure

; Global b.x, c.c <- Fehler Type Char für Schleife / Bei PB -128 .. + 127 / Bei Schleifen um fehler zu vermeiden immer Long nehmen

Global b.x, c.l

For c = 0 To 255
  b\a[c] = 0
  Debug "index: " + Str(c) + " / wert: " + Str(b\a[c])
Next

FF :wink:
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
ts-soft
Beiträge: 22292
Registriert: 08.09.2004 00:57
Computerausstattung: Mainboard: MSI 970A-G43
CPU: AMD FX-6300 Six-Core Processor
GraKa: GeForce GTX 750 Ti, 2 GB
Memory: 16 GB DDR3-1600 - Dual Channel
Wohnort: Berlin

Beitrag von ts-soft »

Kekskiller hat geschrieben:Klappt auch nicht :( . Geht mit gar keinem Datentyp.
Michael hats ja bereits gepostet, aber hier nochmal zur Verdeutlichung:
Der Schleifenzähler einer For : Next Schleife ist immer ein Long, bzw. sollte es sein, alles andere ergibt keinen sinn.
c.c
For c ist grütze :twisted:

Nachtrag:
>> c.c <- Fehler Type Char für Schleife / Bei PB -128 .. + 127
Character ist unsigned (0 - 255, bzw. 0 - 65535)
PureBasic 5.73 LTS | SpiderBasic 2.30 | Windows 10 Pro (x64) | Linux Mint 20.1 (x64)
Nutella hat nur sehr wenig Vitamine. Deswegen muss man davon relativ viel essen.
Bild
Gesperrt