C /C++のコルーチン
このチュートリアルでは、C /C++のコルーチンを理解するためのプログラムについて説明します。
コルーチンは、実行制御を2つのルーチン間で切り替えてそれらのいずれかを返す制御命令です。
例
#include<stdio.h>
int range(int a, int b){
static long long int i;
static int state = 0;
switch (state){
case 0:
state = 1;
for (i = a; i < b; i++){
return i;
//returning control
case 1:; //resuming control
}
}
state = 0;
return 0;
}
int main(){
int i;
for (; i=range(1, 5);)
printf("control at main :%d\n", i);
return 0;
} 出力
control at main :1 control at main :2 control at main :3 control at main :4
-
C / C ++のコアダンプ(セグメンテーション違反)
このチュートリアルでは、C / C ++のコアダンプ(セグメンテーション違反)を理解するためのプログラムについて説明します。 これは、コードが読み取り専用メモリに書き込もうとしたり、破損したメモリの場所にアクセスしようとしたりするなどの理由で発生します。 例 文字列リテラルの変更 int main(){ char *str; str = "GfG"; *(str+1) = 'n'; return 0; } 配列インデックスの範囲外へのアクセス #incl
-
C / C ++のAAツリー?
コンピュータサイエンスのAAツリーは、順序付けられたデータを効率的に保存および取得するために実装されたバランスの取れたツリーの形式として定義されます。 AAツリーは、エントリの効率的な追加と削除をサポートするバイナリ検索ツリーの形式である赤黒ツリーのバリエーションとして扱われます。赤黒木とは対照的に、AAツリーの赤いノードは、左のサブチャイルドではなく、右のサブチャイルドとしてのみ追加できます。この操作の結果、2-3-4ツリーではなく2-3ツリーのシミュレーションが行われるため、メンテナンス操作が簡素化されます。赤黒木のメンテナンスアルゴリズムでは、ツリーのバランスを適切にとるために、7つの異