1
1
Fork 0
mirror of https://github.com/QB64-Phoenix-Edition/QB64pe.git synced 2024-06-29 11:40:38 +00:00
QB64-PE/internal/help/_MEMNEW.txt
SteveMcNeill 33adc04fc4 Add temp folder to repo. It's necessary as well!
Just more initial setting on... nothing much to see here.
2022-04-28 13:39:56 -04:00

56 lines
2 KiB
Plaintext

{{DISPLAYTITLE:_MEMNEW}}
The [[_MEMNEW]] function allocates new memory and returns a [[_MEM]] memory block referring to it.
{{PageSyntax}}
: {{Parameter|memoryBlock}} = [[_MEMNEW]]({{Parameter|byteSize}})
{{Parameters}}
* The {{Parameter|byteSize}} parameter is the desired byte size of the memory block based on the variable [[type]] it will hold.
{{PageDescription}}
* The {{Parameter|memoryBlock}} value created holds the elements .OFFSET, .SIZE, .TYPE and .ELEMENTSIZE.
* [[_MEMNEW]] does not clear the data previously in the memory block it allocates, for speed purposes.
* To clear previous data from a new memory block, use [[_MEMFILL]] with a byte value of 0.
* When a new memory block is created the memory .TYPE value will be 0.
* '''If the read only memory block .SIZE is 0, the memory block was not created.'''
* '''All values created by memory functions must be freed using [[_MEMFREE]] with a valid [[_MEM]] variable.'''
{{PageExamples}}
''Example:'' Shows how [[SINGLE]] numerical values can be passed, but non-fixed [[STRING]] lengths cannot get the value.
{{CodeStart}} '' ''
{{Cl|DIM}} m {{Cl|AS}} {{Cl|_MEM}}
{{Cl|DIM}} f {{Cl|AS}} {{Cl|STRING}} * 5
m = {{Cl|_MEMNEW}}(5) 'create new memory block of 5 bytes
a = 12345.6
{{Cl|_MEMPUT}} m, m.OFFSET, a 'put single value
{{Cl|_MEMGET}} m, m.OFFSET, b 'get single value
{{Cl|PRINT}} "b = "; b
c$ = "Doggy"
{{Cl|_MEMPUT}} m, m.OFFSET, c$ 'put 5 byte string value
{{Cl|_MEMGET}} m, m.OFFSET, d$ 'get unfixed length string value
{{Cl|_MEMGET}} m, m.OFFSET, f 'get 5 byte string value
e$ = {{Cl|_MEMGET (function)|_MEMGET}}(m, m.OFFSET, {{Cl|STRING}} * 5) 'get 5 byte string value
{{Cl|PRINT}} "d$ = "; d$; {{Cl|LEN}}(d$) 'prints empty string
{{Cl|PRINT}} "e$ = "; e$; {{Cl|LEN}}(e$)
{{Cl|PRINT}} "f = "; f; {{Cl|LEN}}(f) '' ''
{{CodeEnd}}
{{OutputStart}}b = 12345.6
d$ = 0
e$ = Doggy 5
f = Doggy 5 {{OutputEnd}}
{{PageSeeAlso}}
* [[_MEM]], [[_MEMPUT]]
* [[_MEMGET]], [[_MEMGET (function)]]
* [[_MEMFILL]], [[_MEMFREE]]
{{PageNavigation}}
<