0
我需要創建將陣列分成2.這裏的參數 INT splitarr的函數(INT *陣列,INT ogsize,INT尺寸1,INT * ARR1,INT * ARR2) 我有數組的任務不能在函數調用之前創建 - > arr1和arr2的值必須爲NULL,我必須在函數內部創建數組。傳遞函數參數值NULL在C
我需要創建將陣列分成2.這裏的參數 INT splitarr的函數(INT *陣列,INT ogsize,INT尺寸1,INT * ARR1,INT * ARR2) 我有數組的任務不能在函數調用之前創建 - > arr1和arr2的值必須爲NULL,我必須在函數內部創建數組。傳遞函數參數值NULL在C
你想要傳遞的是一個指針,而不是傳入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);
這將存儲在那些兩個變量的新分配的數組。
'size1'是什麼? – coderredoc
size1是分割數組的大小點,如果size1 = 3,則第一個數組有3個元素,第二個元素有其餘 –