動的なメモリ割り当てC / C ++であります

道の静的割り当てと動的割り当ての配列の定義を見て:

静的に割り当てられた配列の定義:

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]
公開された34元の記事 ウォン称賛85 ビュー4619

おすすめ

転載: blog.csdn.net/weixin_45895026/article/details/103939446