可能性の重複:どのように
C pointer to array/array of pointers disambiguationこの文字ポインタ宣言は何を意味しますか?
char (*p)[4];
char *p[4];
は異なるのですか?
可能性の重複:どのように
C pointer to array/array of pointers disambiguationこの文字ポインタ宣言は何を意味しますか?
char (*p)[4];
char *p[4];
は異なるのですか?
char (*p)[4];
は - チャーのアレイ4へのポインタとしてPを宣言する。char *p[4];
- pをcharへのポインタの配列4として宣言します。char (*p)[4];
:p
4.
char [4]
points to |
char [4] v
+------+ +------+------+------+------+
| p |------------>| | | | |
+------+ +------+------+------+------+
char char char char
p will point to a char [4] array. Array is not created.
p is intended to be assigned at address of a char [4]
char *p[4];
長のchar
配列へのポインタである:p
は長さ4の配列であり、配列の各位置はchar
+------+------+------+------+
p | | | | |
an array +------+------+------+------+
itself | | | |
v v v v
char* char* char* char*
p is an array and will be allocated in stack (if automatic)
この「pをcharの配列4へのポインタとして使用する」 –
しかし、あなたは必要ですが! –
は* p [0] = "Hello"です。または* p [0] =(char *)malloc(10);最初の宣言のために有効 –