0

タスクを提示されましたが、それを完了するのに苦労しています。基本的に、double の配列をコピーし、十分なメモリを割り当ててから、新しい配列のベースへのポインターを返す関数を作成します。いろいろ試してみたけど、まだうまくいっているとは思えない…

これは私がこれまでに持っているものです:

int *arrayCopyAndBase(double *array, int size)
{
    int i;
    int *arrayCopy;
    array_copy = malloc(size * sizeof(int));
    for (i = 0; i < size; i++)
    {
         arrayCopy[i] = array[i];
    }
    return &arrayCopy;
}

エラーは明らかだと思いますが、初心者としてそれらを見つけるのに苦労しています。&arrayCopy はおそらく &arrayCopy[0] である必要があることはわかっていますが、その結果、アドレスが常に変化します。助けていただければ幸いです。正しい軌道に乗る必要があるだけです。

4

3 に答える 3

0

malloc を使用すると void ポインタが返されるため、double として型キャストする必要があります。

于 2013-04-03T03:28:00.587 に答える