トップ->C言語入門

あなたは

人目のC(C++)言語入門受講生です。

C言語入門内検索

目次
C言語入門〜トップ
C++言語入門〜トップ
0. はじめに

1. 基本的な決まり
   1. 書式
   2. 予約語
   3. 構成
   4. データの形と宣言
   5. 定数と変数
   6. 簡単な演算

2. 入出力
   1. printf
   2. scanf
   3. 練習問題1
   4. 1文字入出力
   5. エスケープシーケンス

3. 制御文
   1. 順次構造
   2. 単一分岐
   3. 多重分岐
   4. ケース構造
   5. 反復構造(while)
   6. 反復構造(do)
   7. 反復構造(for)
   8. 補助制御文
   9. 練習問題
   10.練習問題

4. 配列
   1. 配列とは
   2. 配列の宣言と初期化
   3. 配列の使用法
   4. 練習問題
   5. 文字列
   6. 2次配列と多次元配列
   7. 練習問題

5. 演算子
   1. 演算子の種類
   2. インクリメント演算子とデクリメント演算子
   3. 複合代入演算子
   4. ビット演算子
   5. シフト演算子
   6. キャスト演算子
   7. 順次演算子
   8. 条件演算子(三項演算子)
   9. sizeof演算子
   10.演算子の優先順位
   11.式と値
   12.条件式と値
   13.練習問題

6. ポインタ
   1. ポインタとは
   2. 配列とポインタ
   3. 文字列とポインタ
   4. ポインタのメリット

7. 関数
   1. 関数の作り方
   2. プロトタイプ宣言
   3. 配列とポインタ
   4. 値渡しとアドレス渡し
   5. main関数の引数
   6. 練習問題
   7. 標準関数
   8. 再帰関数

8. プリプロセッサ
   1. プリプロセッサとは
   2. #define, #undef
   3. #include
   4. #if
   5. #error、#warning
   6. マクロ
   7. 定義済みマクロ

9. 変数の有効範囲
   1. 変数の種類
   2. グローバル変数の有効範囲
   3. オート変数の有効範囲
   4. スタティック変数の有効範囲

10. 構造体
   1. 構造体とは
   2. 構造体の宣言
   3. 構造体の使用法
   4. 構造体のポインタ
   5. 構造体の構造体
   6. 構造体と関数
   7. 練習問題

11. 共用体
   1. 共用体とは
   2. 共用体の宣言
   3. 共用体の使用法

12. ファイル
   1. ファイル
   2. ファイル構造体
   3. ファイル作成・オープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. ファイルエラー
   8. ランダムアクセス
   9. 標準入出力
   10. 練習問題
   11. ファイルの検索
   12. ファイルの削除
   13. ファイル名変更
   14. ディレクトリ操作

13. 低水準入出力関数
   1. 高水準入出力関数との違い
   2. ファイル作成
   3. ファイルオープン
   4. ファイル読み込み
   5. ファイル書き込み
   6. ファイルクローズ
   7. 標準入出力
   8. ランダムアクセス
   9. ファイルポインタとファイルディスクリプタ
   10. 練習問題

14. データ構造
   1. データ構造とは
   2. データ構造の種類
   3. 線形リスト
     4. 単方向リスト
     5. 双方向リスト
     6. 環状リスト
   7. ベクター
   8. 木
     9. 二分検索木
   10. スタック
   11. キュー

15 標準関数
   1. 文字分類・文字変換
   2. 文字列操作
   3. データ変換
   4. メモリー操作
   5. 数値演算
   6. ファイル操作(高水準入出力関数)
   7. ファイル操作(低水準入出力関数)
   8. プロセス関係

16 関数ポインタ
   1. 関数ポインタとは
   2. 関数ポインタ
   3. 関数ポインタと引数・戻り値
   4. 関数ポインタの配列

17. そしてその後は (PR)
   1. ヒューマンアカデミー C言語講座
   2. el school C言語講座
   3. C++入門


・ このページの先頭に戻る
・ トップページに戻る


・ このページの先頭に戻る
・ トップページに戻る

トップ-> C言語入門:標準関数-> 15-4. メモリー操作

←前ページへ :  トップへ :  次ページへ→


15-4.メモリー操作

  ここでは、メモリー操作に関する関数を紹介します。


メモリー確保
関数名 malloc
ヘッダーファイル stdlib.h
malloc.h
alloc.h
のいづれか
書 式 void* malloc( size_t size )
戻り値 NULL(0):エラー
それ以外:確保されたメモリーのアドレス
機 能 sizeバイトのメモリーを確保します。この関数を用いて確保されたメモリーはfree 関数を用いて解放しなければなりません。
また、実際に使用されるメモリーは管理用メモリーなどを 必要としますので、残りメモリー量はsizeバイトよりも少なくなります。

関数名 calloc
ヘッダーファイル stdlib.h
malloc.h
alloc.h
のいづれか
書 式 void* calloc( size_t num, size_t size )
戻り値 NULL(0):エラー
それ以外:確保されたメモリーのアドレス
機 能 size×numバイトのメモリーを確保し、0でクリアします。
実際に使用されるメモリーは管理用メモリーなどを 必要としますので、残りメモリー量はsizeバイトよりも少なくなります。

関数名 realloc
ヘッダーファイル stdlib.h
malloc.h
alloc.h
のいづれか
書 式 void* realloc( void* memblock, size_t size )
戻り値 NULL(0):エラー
それ以外:確保されたメモリーのアドレス
機 能 malloc,calloc,reallocで割り当てたメモリーの大きさをsize バイトに変更します。これにより、メモリー領域の場所(ポインタ)は変わります。 メモリー領域を増やした場合は前のサイズ、メモリー領域を減らした場合は新しいサイズの 内容は同じ値がコピーされます。

メモリー解放
関数名 free
ヘッダーファイル stdlib.h
malloc.h
alloc.h
のいづれか
書 式 void free( void* memblock )
戻り値 なし
機 能 mallocで割り当てたメモリー領域を開放します。

メモリー初期化
関数名 memset
ヘッダーファイル memory.h
string.h
のいづれか
書 式 void* memset( void* dest, int c, size_t count )
戻り値 destの値
機 能 destからcountバイトのメモリー領域をcで埋めます。

メモリーコピー
関数名 memcpy
ヘッダーファイル memory.h
string.h
のいづれか
書 式 void* memcpy( void* dest, const void* src, size_t count )
戻り値 destの値
機 能 srcからcountバイトのメモリー領域をdestから始まる領域にコピーします。

関数名 memmove
ヘッダーファイル string.h
書 式 void* memmove( void* dest, const void* src, size_t count )
戻り値 destの値
機 能 memcpyと同等ですが、コピー元とコピー先の一部が重なっている場合でも大丈夫です。

関数名 memccpy
ヘッダーファイル memory.h
string.h
のいづれか
ただしANSI規格外なので、サポートされていないコンパイラもある
書 式 void* memccpy( void* dest, const void* src, int c, unsigned int count )
戻り値 destの値
機 能 srcから始まるメモリー領域をdestから始まるメモリー領域にコピーします。 sizeバイトコピーするか、cの下位1バイトのデータをコピーしたら終了します。

文字検索
関数名 memchr
ヘッダーファイル memory.h
string.h
のいづれか
書 式 void* memchr( const void* buf, int c, size_t count )
戻り値 NULL(0):含まれていない
cのポインタ
機 能 srcからcountバイトのメモリー領域にcの下位1バイト分のデータが 含まれていれば、そのポインタを返します。
もし含まれていないならば、NULL(0)を返します。 複数存在する場合は、最初のポインタが返されます。

メモリー比較
関数名 memcmp
ヘッダーファイル memory.h
string.h
のいづれか
書 式 int memcmp( const void* buf1, const void* buf2, size_t count )
戻り値 NULL(0):含まれていない
cのポインタ
機 能 buf1から始まるメモリー領域とbuf2から始まるメモリー領域を countバイト比較します。
例えば、0x30,0x31....という領域と 0x30,0x30....という領域を比較した場合、後者のメモリー領域の方が 小さいと言います。

関数名 memicmp
ヘッダーファイル memory.h
string.h
のいづれか
ただしANSI規格外なので、サポートされていないコンパイラもある
書 式 int memicmp( const void* buf1, const void* buf2, unsigned int count )
戻り値 NULL(0):含まれていない
cのポインタ
機 能 memcmpと同じだが、半角大文字と半角小文字の区別はしません。

size_tunsigned intと同じです。


←前ページへ :  トップへ :  次ページへ→