malloc関数やnew演算子を使用すると、メモリリンクリストのノードを割り当て

malloc関数やnew演算子を使用すると、メモリリンクリストのノードを割り当て

我々は、ノードタイプのリストを定義すると、どのようにそれぞれの新しいノードに対応する仮のサイズを割り当てることと、新しいノードにメモリ空間を必要とし、この記事では、新しい演算子内の2つの方法、すなわち、C言語のmalloc関数とC ++の説明します文字。

1.malloc機能

C言語のmalloc関数であるstdlib.h動的メモリのアプリケーション機能のためのヘッダファイル、同一の戻り型は、アプリケーションのポインタ型が可変である基本的な使い方です。

typename* p=(typename*)malloc(sizeof(typename));

可変比可変ノード構造タイプを適用することINT。

int* p=(int)malloc(sizeof(int));
node* p=(node)malloc(sizeof(node));

このロジックは、書き込み:メモリー空間(すなわち、はsizeof(ノード))はmalloc関数は、のメモリサイズに適用されるように、パラメータとしてmalloc関数を適用する必要sizeof(node)スペース、およびこのスペースを指すポインタを返します。しかし、この時間は、ポインタはポインタ型未定であるvoid*ことをノードにキャストする必要があり、ので、malloc関数を追加する前に、種類、ポインタを(node *)従って右側は、ノード得られる等号を割り当てることによって、ポインタ型を、ノードポインタを割り当て、成功ノードのタイプのメモリ・サイズに適用される、すなわち、ノード構造体変数の種類、及びポインタPを介してアクセスそれは。アプリケーションが失敗した場合は、nullポインタNULLを返します。故障は、一般に、その大きなダイナミックアレイに適用使用malloc関数で発生します

int *p=(int*)malloc(1000000 * sizeof(int));
//这样malloc会返回空指针并赋值给p。因此只要是正常分配一个结点的空间,是不会失败的。

演算子2.new

おすすめ

転載: www.cnblogs.com/jia0504/p/11701228.html