【初心者歓迎】C/C++室 Ver.33【環境依存OK】
■ このスレッドは過去ログ倉庫に格納されています
0796デフォルトの名無しさん
2007/01/05(金) 02:53:30int* ptr = new int;
つまり、int一個分の領域をヒープに確保するわけだ。
int* ptr = new int[1];
C++で一次元配列int[]はint*と同じなので、配列のサイズが増えても書き方は同じ。
int* ptr = new int[100];
メモリ上にどんだけ確保してもptrに返るのはその先頭アドレスとなる。
で、次に下の書き方ではintのポインタをメモリに確保する。
int** ptr = new int*;
これは上の同じ理屈でこう書ける。つまりintのポインタ一個分を確保するってこと。
int** ptr = new int*[1];
当然、サイズが増えても先頭のポインタは変化しないので、こう↓かける
int** ptr = new int*[100];
括弧に関してはワカラン。「そういう文法だから」でいいんじゃね?
だって、普通の変数の宣言で
(int*) ptrInt=NULL;
なんて書き方できないっしょ?
■ このスレッドは過去ログ倉庫に格納されています