Hier könnt Ihr gute, von Euch geschriebene Codes posten. Sie müssen auf jeden Fall funktionieren und sollten möglichst effizient, elegant und beispielhaft oder einfach nur cool sein.
Structure sVariable ;/ Variable
varName.l ; Numerischer Name
varType.l ; Typ der Variable
varDynn.b ; #True: Dynamisch ; #False: Statisch
varSize.l ; Größe der Variable
varPtr.l ; Pointer zu der Variable
EndStructure
IncludeFile "DynamicLL.pbi"
Global dllVarBank.List
Global dllVarMemm.List
Procedure cMain()
dllVarBank = CreateList(SizeOf(List))
EndProcedure
Procedure SYSM_IVB()
DefType.List dliItem
If (dllVarBank\CountItems()-1) = dllVarBank\Index()
dllVarMemm = dllVarBank\AddItem()
dllVarMemm = CreateList(SizeOf(sVariable))
Else
dllVarBank\NextItem()
EndIf
EndProcedure
Procedure NewVar()
DefType.sVariable *varNewVar
DefType.l lngMemory
lngMemory = AllocateMemory(2500)
*varNewVar = dllVarMemm\AddItem()
Debug dllVarMemm\CountItems()
*varNewVar\varName = 5
EndProcedure
cMain()
SYSM_IVB()
NewVar()
NewVar()
NewVar()
NewVar()
NewVar()
Der Code stürzt bei der zeile [c]If *NextItem[/c] in der Funktion [c]AddItem()[/c] ab. Dies tritt aber erst nach mehrmaligen Hinzufügen von Items ein. Wenn ich in der Struktur sVariable am anfang, vor varName, noch ein Element einfüge, funktioniert alles.