道の静的割り当てと動的割り当ての配列の定義を見て:
静的に割り当てられた配列の定義:
const int N=100;
typedef struct{
int data[N];
int length;
}sqlist;//顺序表类型
動的に割り当てられた配列の定義:
typedef struct{
int *data;
int length;
}sqlist;//顺序表类型
シーケンステーブル(動的)のM個のアドレス空間割り当てられたバイトの長さ:
sqlist L;
L.data=(ElemType*)malloc(sizeof(ElemType)*n);
//简单的写:
L.data=(int*)malloc(sizeof(int)*n);
。1、malloc関数(M)関数:動的なメモリ割り当てと呼ばれます。C言語では
なお、mは、アドレス空間のバイト長を示す開き、この空間の先頭アドレスを返し、mは整数です。
(INT *)は、mallocの関数ポインタviod *タイプを返すため、ポインタタイプが未定さはsizeof(INT)は関数malloc関数の引数がint型メモリのサイズを指定し、キャストを表し、Nプレゼンテーション要素数、各構成要素の大きさが占有されているバイトあなたは120を必要後ろ120バイト、上記(INT *)を占め要素20が、発現される場合(INT)、INT例えば、8つのバイトどのようなタイプへのバイトの内容、その後、我々はベースアドレスL.dataを取得
2、はsizeof(x)の計算:変数xの長さを計算します。
。3、無料(P)機能:リリースメモリポインタ変数、すなわち完全に変数を削除します。malloc関数を使用して一つ。pはポインタ変数でなければなりません。
ロードする機能を使用して、<stdlib.h>に含ま標準ライブラリ
4、新しい、malloc関数:
C ++での動的メモリ割り当て:
両方使用して、空きメモリ領域への削除、動的にスペースを割り当てるために新しいを使用して、店にスペースを作成します。
たとえば、定義:
指针变量=new 数据类型
int *p=new int;
int *p=new int[MAXSIZE];