gpt4 book ai didi

c - 在c中传递函数参数值NULL

转载 作者:行者123 更新时间:2023-11-30 14:53:51 24 4
gpt4 key购买 nike

我需要创建一个函数,将数组分成 2 个。这是参数int splitarr(int *array,int ogsize, int size1,int *arr1, int *arr2)我拥有数组的任务不得在函数调用之前创建 -> arr1 和 arr2 值必须为 NULL,并且我必须在函数内创建数组。

最佳答案

您想要的不是传递 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);

这会将新分配的数组存储在这两个变量中。

关于c - 在c中传递函数参数值NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46993089/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com