[Implemented] ClearMemory(*buffer,size)
Posted: Fri Nov 23, 2007 4:58 pm
I have been twiddling with the peek and poke series and think PB needs an easy and efficent way to CLEAR a *buffer memory. 

http://www.purebasic.com
https://www.purebasic.fr/english/
Code: Select all
; Clear Membuffer (MAKE SURE SIZE IS NOT LARGER THAN BUFFER!)
Procedure ClearMemory(*Buffer,Size.l)
Protected *cptr.Long = *Buffer
If *Buffer And Size
For i = 0 To Size Step 4
*cptr\l = 0 : *cptr + i
Debug i
Next
ProcedureReturn 1
EndIf
ProcedureReturn 0
EndProcedure
; Struct for our Memory
Structure _a
x.l
y.l
EndStructure
#BufferSize = 128
*mem = AllocateMemory(#BufferSize)
*ptr._a = *mem
; Fill in Values
*ptr\x = 5
*ptr\y = 8
; Check Values with PeekL
Debug PeekL(*ptr)
Debug PeekL(*ptr+SizeOf(_a\x))
; Clear
Debug "Clear: "+Str(ClearMemory(*ptr,#BufferSize))
; Check Values with PeekL
Debug PeekL(*ptr)
Debug PeekL(*ptr+SizeOf(_a\x))