C ++ポインタの問題

C ++のポインタに格納アドレス値ではなく、値そのものが、私たちはの基本原則にC ++のポインタを見てみることを変数さ:
ここに画像を挿入説明
ポインタ宣言:
スペースの両側の算術演算子はオプションです。従来、Cプログラマは形式を使用:
int型のPTRを、
これは強調し
ptrがint型の値が、C ++プログラマや多くの使用この形式です:
int型
PTR;
ことが強調される:intはint型を指しているタイプでありますポインタ。コンパイラに違いはありませんスペースを追加します。
C ++で、INTは
複合型、int型へのポインタである
ポインタ上の注意:
コンピュータのメモリを作成する際にC ++ポインタのアドレスを記憶するために割り当てられ、それにストアデータ割り当てポインタポイントに使用されていませんメモリ。データのためのスペースを提供することは別のステップで
ここに画像を挿入説明
新しいメモリ割り当てに使用されているC ++
新しいメモリのブロックの正確な長さのために見て、とは、メモリブロックのアドレスを返します。データの種類にメモリを割り当てるための新しい、必要性を伝えるために、プログラマを。ポインタのアドレスを割り当てるために、プログラマの責任である
例:
int型* PTR =新しい新しいint型を、
新しい新しいint型は、プログラム、適切なメモリ記憶INTを伝えます。new演算子は、データの数に応じて決定されたメモリに必要な種類のバイト、それは、このようなメモリを見つけるだろうし、そのアドレスを返す
メモリを解放するために:
のみを使用してメモリを解放するために削除し、新規を使用して割り当てられました。ヌルポインタの削除使用しても安全である
例:
int型* PTRを;
...;
削除PTR、
このメモリは、ptrが放出するが、PTRポインタ自体は削除せず、その後、別の新たに割り当てられたメモリブロックへの再PTRポイントとすることができます。それは、割り当てられたメモリはもはや使用することができないと述べ、それ以外の場合は、メモリリークになります。新しいペアリングを使用して削除することを確認してください。メモリリークが深刻であれば、プログラムが終了するため、より多くのメモリを探していきます。
これは誤っての可能性が同じメモリブロック二回削除増えると一般的には、同じメモリブロックへの2つのポインタを作成していない
ファイルポインタの使用例:
unsigned char型pImageBand1 = NULLを、
pImageBand1新しい新=( :: STD nothrow)unsigned char型は[WIDTH1
height1 * bandCount1]; //メモリ・サイズを決定します

GDALDataset * WriteDataSet = poDriver->作成します(「D:\件のデータ\ランドサット\ band_merge2.tif」、WIDTH1、height1、3、GDT_Byte、papszOptions)。
IF(WriteDataSet-> GetRasterBand(1) - > RasterIO(GF_Write、0、0、WIDTH1、height1、pImageBand1、WIDTH1、height1、GDT_Byte、0、0)== CE_Failure)
{
戻り偽。
}
图片来源:「C ++プライマープラス(第6版)」

@ リモートセンシングを感じます

公開された16元の記事 ウォン称賛18 ビュー20000 +

おすすめ

転載: blog.csdn.net/qq_37554556/article/details/84525863