InitializeStructure nicht verständlich

Für allgemeine Fragen zur Programmierung mit PureBasic.
Velox
Beiträge: 39
Registriert: 18.09.2011 18:02

InitializeStructure nicht verständlich

Beitrag von Velox »

Hallo,

kann mir jemand diesen Befehl näher erklären?
Wieso sollte ich InitializeStructure nutzen wenn ich bereits eine Structure XY erstellt habe?

Gruß
Velox
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

Re: InitializeStructure nicht verständlich

Beitrag von ts-soft »

Wenn Du eine Structurevariable im Speicher erstellst, was in manchen Situationen erforderlich ist, und diese
Listen oder Maps enthält, funktionieren diese nur mit InitializeStructure. Bei normaler (ohne Pointer) erstellten
Variablen ist dies nicht erforderlich, sondern wird vom Compiler erledigt.

Code: Alles auswählen

EnableExplicit

Structure bla
  List blub.i()
  a.i
  Map blob.i()
EndStructure

Define *my.bla
*my = AllocateMemory(SizeOf(bla))
InitializeStructure(*my, bla)
Gruß
Thomas
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
Velox
Beiträge: 39
Registriert: 18.09.2011 18:02

Re: InitializeStructure nicht verständlich

Beitrag von Velox »

Verstehe ich so das ich dann InitializieStructure nur brauche wenn ich mit Pointer arbeite, richtig?

Gruß
Velox
Benutzeravatar
Bisonte
Beiträge: 2465
Registriert: 01.04.2007 20:18

Re: InitializeStructure nicht verständlich

Beitrag von Bisonte »

Wenn du eine Struktur hast in der Linklists oder Maps vorhanden sind und du reservierst Speicher, dann brauchst du es.

Also so wie ts-soft im Beispiel zeigt.

Bei einem Variable.bla braucht man das nicht, da PB sich da wohl selbst was hinbastelt.
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten