2016-03-18 11:36:04 +00:00
|
|
|
{{DISPLAYTITLE:_MEMNEW}}
|
2015-08-02 12:12:44 +00:00
|
|
|
The '''_MEMNEW''' function allocates new memory and returns a [[_MEM]] memory block referring to it.
|
|
|
|
|
|
|
|
|
|
|
|
{{PageSyntax}}
|
|
|
|
::: memory_block = '''_MEMNEW(''byte_size'')'''
|
|
|
|
|
|
|
|
|
2016-03-18 11:36:04 +00:00
|
|
|
{{Parameters}}
|
|
|
|
* The ''byte size'' parameter is the desired byte size of the memory block based on the variable [[type]] it will hold.
|
|
|
|
|
|
|
|
|
|
|
|
''Usage:''
|
2015-08-02 12:12:44 +00:00
|
|
|
* The ''memory block'' value created holds the starting OFFSET, SIZE, TYPE and ELEMENTSIZE.
|
2016-03-18 11:36:04 +00:00
|
|
|
* _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 zero byte value,
|
2015-08-02 12:12:44 +00:00
|
|
|
* When a new memory block is created the memory .TYPE value will be 0.(this may be changeable in the future)
|
|
|
|
* '''If the read only memory block .SIZE is 0, the memory block was not created!'''
|
2016-03-18 11:36:04 +00:00
|
|
|
* '''All values created by memory functions MUST be freed using [[_MEMFREE]] with a valid [[_MEM]] variable.'''
|
2015-08-02 12:12:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
''Example:'' Shows how [[SINGLE]] numerical values can be passed, but unfixed [[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}}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
''See also:''
|
|
|
|
* [[_MEM]], [[_MEMPUT]]
|
|
|
|
* [[_MEMGET]], [[_MEMGET (function)]]
|
2016-03-18 11:36:04 +00:00
|
|
|
* [[_MEMFILL]], [[_MEMFREE]]
|
2015-08-02 12:12:44 +00:00
|
|
|
|
|
|
|
|
|
|
|
{{PageNavigation}}
|