私は今、C言語を学んでいて、いくつかのことを明確にしたかったのです。mallocを使用するポインタは配列と見なすことができますか?
int *arr = malloc(10 * sizeof(int));
私はこのケースでは、ARRは相当を割り当てられているポインタである、ということを理解:
私たちは、動的配列を作成したい場合、我々は次のコード行を使用することができることを学んできましたバイト単位で10の整数の配列私はまた、[9]。
それがメモリを割り当てられているすべてのポインタを配列として扱うことができる意味していますが、[0] ARRするARRから(配列としてARR扱うことができることを理解できますか?
枚このをできました配列として扱われる?
int *single = malloc(sizeof(int));
それとも、これは配列として扱われるだろうか?配列のサイズを無視
int *half = malloc(sizeof(int) * 1.5)
'int * single = malloc(sizeof(int));は' int single [1]; 'に対応します。 'single [0]'や '* single'として使うことができます。 「半分」も同じです。 – BLUEPIXY
2番目のものは6バイトを割り当てますが、 'int half [1]'配列としてしか使えません。 @JonathanLeffler; –
; 'malloc'は' size_t'型の引数とsize_'型の 'unsigned'型を想定しています。 'malloc(sizeof(int)* 1.5)'のように)floatを 'malloc'に渡すべきではありません。 – haccks