Memcmp
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.
Also called mem_cmp().
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. |
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.
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