- This wiki is out of date, use the continuation of this wiki instead
Memset
From FenixWiki
(Difference between revisions)
| Revision as of 22:41, 27 April 2007 (edit) Sandman (Talk | contribs) m ← Previous diff |
Revision as of 00:30, 28 April 2007 (edit) (undo) Sandman (Talk | contribs) m Next diff → |
||
| Line 3: | Line 3: | ||
| ==Definition== | ==Definition== | ||
| - | '''INT''' memset ( <''' | + | '''INT''' memset ( <'''VOID POINTER''' data> , <'''BYTE''' value> , <'''INT''' bytes> ) |
| Sets all bytes in a certain memory block to a certain value. | Sets all bytes in a certain memory block to a certain value. | ||
| Line 9: | Line 9: | ||
| == Parameters == | == Parameters == | ||
| {| | {| | ||
| - | | ''' | + | | '''VOID POINTER''' data || - Pointer to the block of bytes in memory |
| |- | |- | ||
| | '''BYTE''' value || - Value to set all bytes to. | | '''BYTE''' value || - Value to set all bytes to. | ||
| Line 67: | Line 67: | ||
| </pre> | </pre> | ||
| Used in example: [[alloc]](), [[memsetw]](), [[say]](), [[pointer]] | Used in example: [[alloc]](), [[memsetw]](), [[say]](), [[pointer]] | ||
| - | Also usable in conjunction with [[map_buffer]]() with 8bit | + | |
| + | Also usable in conjunction with [[map_buffer]]() with 8bit [[map]]s. (''Example needed.'') | ||
Revision as of 00:30, 28 April 2007
Contents |
Definition
INT memset ( <VOID POINTER data> , <BYTE value> , <INT bytes> )
Sets all bytes in a certain memory block to a certain value.
Parameters
| VOID POINTER data | - Pointer to the block of bytes in memory |
| BYTE value | - Value to set all bytes to. |
| INT bytes | - Number of bytes to change the value of. |
Returns
INT : true
Example
Program example;
Private
byte pointer pbyte;
word pointer pword;
int pointer pint;
int elements = 10;
int i;
Begin
// Allocate memory
pbyte = alloc(elements);
pword = alloc(elements*sizeof(word));
pint = alloc(elements*sizeof(int));
// Reset memory to 0's
memset (pbyte,0,elements);
memsetw(pword,0,elements); // same as memset(pword,0,elements*sizeof(word));
// because value-parameter is 0.
memset (pint ,0,elements*sizeof(int)); // There isn't a "memseti()", so we need to
// set the individual bytes to 0. To change
// ints to nonzero values, memset() can't be
// used easily
// Write numbers to bytes and ints
for(i=0; i<elements; i++)
pbyte[i] = 133; // pbyte[i] is the same as *(pbyte+i)
*(pint+i) = 4555; // pint[i] is the same as *(pint+i)
end
// Write numbers to words
memsetw(pword,345,elements);
// Show numbers
for(i=0; i<elements; i++)
say("byte["+i+"] = " + *(pbyte+i));
say("word["+i+"] = " + pword[i]);
say("int ["+i+"] = " + pint[i]);
end
Loop
frame;
End
End
Used in example: alloc(), memsetw(), say(), pointer
Also usable in conjunction with map_buffer() with 8bit maps. (Example needed.)
