C言語--ポインタは一般的にいつメモリ領域を申請する必要がありますか?
582 ワード
1.ポインタが指すアドレスにデータを格納する必要がある場合は申請スペースが必要です.
int *q;アドレスのみでメモリ容量がありません.このアドレスはランダムアドレスです.
(1)メモリ領域が申請されていません:
エラー!ポインタ変数qには空間がなく,直接データを格納できない.
(2)メモリ領域の申請:
正しくは、データを格納する前にポインタ変数にintタイプサイズのスタックメモリ領域を申請しました.
2.比較:
エラー!qメモリ空間を指していないため、直接データを格納することはできません.
正しくて、2回qのアドレスが違います.q=&a:qは変数aが存在するメモリ空間を指し、変数aはint型であり、メモリにはint型のメモリ空間がある.間接的にqに空間を割り当てたのだろう.
int *q;アドレスのみでメモリ容量がありません.このアドレスはランダムアドレスです.
(1)メモリ領域が申請されていません:
int *q;
*q = 1;
cout<
エラー!ポインタ変数qには空間がなく,直接データを格納できない.
(2)メモリ領域の申請:
int *q = new int;
*q = 1;
cout<
正しくは、データを格納する前にポインタ変数にintタイプサイズのスタックメモリ領域を申請しました.
2.比較:
int *q;
*q = 1;
エラー!qメモリ空間を指していないため、直接データを格納することはできません.
int *q, a = 1;
q = &a;
正しくて、2回qのアドレスが違います.q=&a:qは変数aが存在するメモリ空間を指し、変数aはint型であり、メモリにはint型のメモリ空間がある.間接的にqに空間を割り当てたのだろう.