0

ここでC noob。実行時に配列を宣言するとき、それを行うための 2 つの方法を見てきました。2番目の (int *) キャストについて誰か説明してもらえますか?

// first way
int numberElements = 5;
int *pointer = malloc(numberElements * sizeof(int));

// second way
...
int *pointer = (int *)malloc(numberElements * sizeof(int));

(int *) キャストが何をしているのかわかりません。最初の割り当てで、配列は次のように満たすことができます...

// first way cont.
... 
for (int i = 0; i < numberElements; i += 1){
    pointer[i] = 0;\
}

これは2番目には当てはまりませんか?あなたは何をしなければなりませんか?

4

2 に答える 2

3

キャストは何もしません。void ポインターは、明示的なキャストなしで任意のポインターに割り当てることができます。

そして、すべきではありません。C99 (または C90、C11) 標準では、キャストは必要ありません。

于 2013-09-22T00:58:37.587 に答える