C ++プログラムで削除してfree()
このチュートリアルでは、C ++のdelete()関数とfree()関数を理解するためのプログラムについて説明します。
これらの機能は両方とも、主に同じ目的で使用されます。つまり、未使用のメモリを解放します。 delete()演算子は、new()を使用して割り当てられた演算子用であり、free()は、malloc()を使用して割り当てられた演算子用です。
例
#include<stdio.h>
#include<stdlib.h>
int main(){
int x;
int *ptr1 = &x;
int *ptr2 = (int *)malloc(sizeof(int));
int *ptr3 = new int;
int *ptr4 = NULL;
//incorrect usage of delete
delete ptr1;
delete ptr2;
//correct usage of delete
delete ptr3;
delete ptr4;
getchar();
return 0;
} -
C++でのDominoとTrominoのタイリング
ドミノとトロミノの2種類の形状があるとします。以下のように回転させることができます- タイリングでは、すべての正方形をタイルで覆う必要があります。ここで、2つのタイルは、ボード上に2つの4方向に隣接するセルがあり、タイルの1つだけが両方の正方形をタイルで占めている場合にのみ異なります。 Nが与えられた場合、2xNボードをタイリングできる方法をいくつ見つける必要がありますか?したがって、入力が3の場合、出力は5になります。したがって、配置は[XYZ XXZ XYYXXYXYY]と[XYZYYZXZZ XYY XXY]になります。ここでは、タイルごとに異なる文字が使用されます。 これを
-
C++でツリーノードを削除する
ツリーがあり、このツリーはノード0をルートとしていると仮定します。これは、次のように与えられます- ノードの数はノードです i番目のノードの値はvalue[i] i番目のノードの親はparent[i] ノードの値の合計が0であるすべてのサブツリーを削除する必要があります。削除すると、ツリーに残っているノードの数が返されます。したがって、ツリーが次のような場合- 7つのノードがあり、出力は2になります これを解決するには、次の手順に従います- 子供と呼ばれる地図を作成する dfs()というメソッドを定義します。これにより、ノード、配列値、グラフが取得されます temp:=ペ