2017-10-28 10 views
0

2を配列に分割する関数を作成する必要があります。 int splitarr(int * array、int ogsize、int size1、int * arr1、int * arr2) 私が配列を持っているタスクは、関数呼び出しの前に作成してはいけません - > arr1とarr2の値はNULLでなければならず、関数内に配列を作成しなければなりません。関数のパラメータ値NULLをcに渡します

+0

「サイズ1」とは何ですか? – coderredoc

+0

size1は、size1 = 3の場合に配列を分割するサイズポイント、最初の配列は3 elemts、2番目の配列は残り –

答えて

1

nullを渡す代わりに、ポインタへのポインタを渡します。関数の署名は、次のようになります。

int splitarr(int *array, int ogsize, int size1, int **arr1, int **arr2); 

ダブルスターに注意してください。今、あなたはそれを呼び出すとき

int splitarr(int *array, int ogsize, int size1, int **arr1, int **arr2) { 
    int* a1 = malloc(size1 * sizeof(int)); 
    int* a2 = malloc((ogsize - size1) * sizeof(int)); 
    // perform some copying operations here 
    *arr1 = a1; 
    *arr2 = a2; 
} 

::あなたの関数は、このような何かをし

int *resultOfSplit1; 
int *resultOfSplit2; 
splitarr(originalArr, originalSize, size1, &resultOfSplit1, &resultOfSplit2); 

これは、これら2つの変数の新しい割り当てられた配列を格納します。

関連する問題