目次1.メモリ領域の違い1.1 各メモリの割り当て状況を確認する2.スタックメモリの確認方法3.ヒープメモリの確認(1)動的メモリのデバッグツール:Valgrind(ヴァルグリンド、GNU General Public …
カテゴリーアーカイブ: c&c++
c言語 関数ポインタ
C言語では、関数ポインタは関数のアドレスを格納する変数です。これにより、プログラムは関数を間接的に呼び出すことができます。関数ポインターは、コールバック関数の実装、動的ディスパッチの実装、ポリモーフィズムのメカニズムの …
c言語 配列と線形リスト
1.配列とは 配列は、同じデータ型の要素を番号(添字:インデックス)順に並べたものを表します。 添字は、C言語を含む多くの言語は0スタートとなります。 (例)要素数100のときの1次元配列a、a[0]・・・a[99] 配 …
c言語 スレッド間の排他制御
1.概要 複数のスレッドで共有リソースにアクセスするとき、同時に1つのスレッドだけが共有リソースにアクセスできるようにするために、ミューテックス (英: mutex)が使用されます。 2.ミューテックスを使った排他制御 …
c言語 コールバック関数
1.概要 コールバック関数 (関数ポインターとも呼ばれます) は、別の関数(ハンドラ)に引数として渡される関数です。 2.コールバック関数を使用する利点(1)柔軟性 別の関数をコールバックとして渡すことにより、実行時に関 …
c言語 デバック文の出力方法
(1)DEBUG_PRINT()の関数をマクロ定義します。#define DEBUG_PRINT(…) printf(“%s(%d) %s:”,  …
base64ライブラリ
1.base64とは base64とは、64進数を意味する言葉で、すべてのデータをアルファベット(a~z, A~z)と数字(0~9)、一部の記号(+,/)の64文字で表すエンコード方式である。 Eメールを送るためのプロト …
マルチプロセスとマルチスレッド(Linux)
目次 1.マルチプロセス 2.マルチスレッド 1.マルチプロセス(1)概要 プロセスはOSによってCPUに割り当てられたプログラムの実行単位で、プロセスには連続した仮想メモリ空間が用意されます。マルチプロセスは複数のプロ …
ソケット通信(Linux)
目次 1.ソケット通信とは 2.ソケットを用いたサーバ/クライアント間通信 3.サンプルプログラム 3.1 コネクション型 3.2 コネクションレス型 1.ソケット通信とは ソケットAPIを用いた異なるホスト間の通信のア …
C++言語
C言語に対して、C++で追加になった機能を中心に記載します。 1.動作環境(サンプルの実行環境)・VirtualBoxのCentOs7マシン・CentOsのバージョン# cat /etc/redhat …