#navi(../)
* メモリの比較を行う・memcmp [#b51d0c78]
指定したメモリ番地とメモリ番地の内容比較を行うmemcmp関数のC言語サンプルソースを以下に記します。

#contents
#htmlinsertpcsp(c-top.html,c-sp.html)

*関連記事 [#dd58370e]
-[[メモリの内容を指定した値で初期化する・memset>メモリ/メモリの内容を指定した値で初期化する・memset]]
-[[メモリ内容をコピーする・memcpy>メモリ/メモリ内容をコピーする・memcpy]]
-[[構造体の内容をコピーする・memcpyは使わない!>メモリ/構造体の内容をコピーする・memcpyは使わない!]]
-[[メモリの比較を行う・memcmp>メモリ/メモリの比較を行う・memcmp]]
-[[動的にメモリを取得する・malloc>メモリ/動的にメモリを取得する・malloc]]
-[[malloc,calloc,reallocで取得したメモリを解放する・free>メモリ/malloc,calloc,reallocで取得したメモリを解放する・free]]
-[[指定した文字数分コピーする・memmove>メモリ/指定した文字数分コピーする・memmove]]
-[[指定したバイトの指定個数分メモリを確保する・calloc>メモリ/指定したバイトの指定個数分メモリを確保する・calloc]]

* memcmpの書式等 [#y01b6524]
-必要なインクルードファイル
 #include <string.h>
-memsetの書式
 int memcmp(const void *s1, const void *s2, size_t n);
-戻り値~
同じ内容の場合は0が返却されます。~
異なる場合は0以外の値が返却されます。
-引数~
1つ目: 比較する内容が格納されているアドレス~
2つ目: 比較する内容が格納されているアドレス~
3つ目: 比較するバイト数

* memcmpを使用したC言語サンプルコード [#tb84fc36]
以下にmemcmpを使用したサンプルコードおよび実行した結果を記します。

&ref(memcmp.c); (改行コードLF)

 #include <stdio.h>
 #include <string.h>
 
 #define BUFSIZE 10
 
 int main(void)
 {
     char a[]    = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
     char aa[]   = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
     char aaa[]  = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 100};
 
     printf("memcmp(a, aa, sizeof(a)) = %d\n", memcmp(a, aa, sizeof(a)));
     printf("memcmp(a, aaa, sizeof(a)) = %d\n", memcmp(a, aaa, sizeof(a)));
 
     return 0;
 }

以下に上記のC言語サンプルコードをコンパイルし実行した時の出力を記します。
 $ gcc memcmp.c -o memcmp
 $ ./memcmp 
 memcmp(a, aa, sizeof(a)) = 0
 memcmp(a, aaa, sizeof(a)) = -1


以上、memcmpのC言語サンプルコードと実行例でした。

#htmlinsertpcsp(c-btm.html,c-sp.html)

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS