gpt4 book ai didi

c - 如何将指向动态分配数组的指针作为函数参数传输

转载 作者:太空宇宙 更新时间:2023-11-04 00:59:09 24 4
gpt4 key购买 nike

我想在函数内部分配一个数组,并且也能够在函数外部使用指向该数组的指针。我不知道我的代码有什么问题

#include <stdio.h>
#include <stdlib.h>

void alloc_array (int **v, int n)
{
*v=(int *)calloc(n,sizeof(int));
printf ("the address of the array is %p",v);
}

void display_pointer (int *v)
{
printf ("\n%p",v);
}

int main()
{
int *v;
alloc_array(&v,3);
display_pointer(v);

return 0;
}

我希望在两个 printf 中得到相同的地址,但事实并非如此。我的错误是什么?

最佳答案

void alloc_array (int **v, int n)
{
*v = calloc(n,sizeof(int));
printf("the address of the array is %p", *v);
// ----^
}

请注意我的 printf 调用中的额外星号。

此外,不要强制转换 malloc/calloc 的返回值。

关于c - 如何将指向动态分配数组的指针作为函数参数传输,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47538661/

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