- This wiki is out of date, use the continuation of this wiki instead
Memcmp
From FenixWiki
(Difference between revisions)
| Revision as of 11:08, 14 May 2007 (edit) Sandman (Talk | contribs) m ← Previous diff |
Current revision (12:46, 29 April 2008) (edit) (undo) Sandman (Talk | contribs) m |
||
| (One intermediate revision not shown.) | |||
| Line 49: | Line 49: | ||
| memset(pbyte1,3,elements); | memset(pbyte1,3,elements); | ||
| memset(pbyte2,3,elements); | memset(pbyte2,3,elements); | ||
| - | result = memcmp(pbyte1,pbyte2,elements); // You can also compare the first 5 bytes, or the first elements/2 bytes, | + | result = memcmp(pbyte1,pbyte2,elements); // You can also compare the first 5 bytes, |
| - | // | + | // or the first elements/2 bytes, it |
| + | // depends on what you want. | ||
| say("Memcmp 1: " + result); | say("Memcmp 1: " + result); | ||
| Line 78: | Line 79: | ||
| End | End | ||
| </pre> | </pre> | ||
| - | Used in example: [[alloc]](), [[memset]](), [[say]](), [[free]](), [[pointer]] | + | Used in example: [[alloc]](), [[memset]](), [[memcmp]](), [[say]](), [[free]](), [[pointer]] |
| + | |||
| + | {{Funcbox | ||
| + | | category = Memory | ||
| + | }} | ||
Current revision
Contents |
[edit] Definition
INT memcmp ( <VOID POINTER ptr1> , <VOID POINTER ptr2> , <INT number> )
Compares the first number bytes of the block of memory pointed by ptr1 to the first number bytes pointed by ptr2, returning zero if they all match or a value different from zero representing which is greater if they do not.
Available since Fenix version 0.92.
[edit] Parameters
| VOID POINTER ptr1 | - Pointer to a block of memory |
| VOID POINTER ptr2 | - Pointer to a block of memory. |
| INT number | - The number of bytes to be checked. |
[edit] Returns
INT : Difference
| 0 | - The blocks of memory are identical. |
| >0 | - The first differing byte in both memory blocks has a greater value in ptr1. |
| <0 | - The first differing byte in both memory blocks has a greater value in ptr2. |
A byte ranges from 0 to 255, meaning 189 is a greater value than 105.
[edit] Example
Program example;
Const
elements = 10;
End
Private
byte pointer pbyte1;
byte pointer pbyte2;
int result;
End
Begin
// Allocate memory
pbyte1 = alloc(elements);
pbyte2 = alloc(elements);
// Make the blocks the same and compare
memset(pbyte1,3,elements);
memset(pbyte2,3,elements);
result = memcmp(pbyte1,pbyte2,elements); // You can also compare the first 5 bytes,
// or the first elements/2 bytes, it
// depends on what you want.
say("Memcmp 1: " + result);
// Make the first block have a greater value and compare
pbyte1[0] = 4;
result = memcmp(pbyte1,pbyte2,elements);
say("Memcmp 2: " + result);
// Make the blocks the same and compare
pbyte2[0] = 4;
result = memcmp(pbyte1,pbyte2,elements);
say("Memcmp 3: " + result);
// Make the first block have a greater value and compare
pbyte2[1] = 5;
result = memcmp(pbyte1,pbyte2,elements);
say("Memcmp 4: " + result);
Repeat
frame;
Until(key(_esc))
// Free the used memory
free(pbyte1);
free(pbyte2);
End
Used in example: alloc(), memset(), memcmp(), say(), free(), pointer
| Memory Functions | |
| • Alloc() • Free() • Memcmp() • Memcopy() • Memory_free() • Memory_total() • Memset() • Memsetw() • Realloc() • | |
