gpt4 book ai didi

c - 在 c 中返回带有自定义函数的数组不起作用

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

我是 C 编程的新手。看看我的代码并指出我做错了什么?这是我创建一个应返回 int 数组的范围函数的代码。

#include<stdio.h>
int * range(int a, int b);

main()
{
int *r;
int j;
r = range(0,5);
printf("%d",r[0]); // getting the first one to check array but not working
// instead showing segmantation fault
}

int * range(int a, int b) {

int last[b];
int i,j;

for(i=a;i<b;i++){
last[i] = i;
}

return last;
}

最佳答案

您正在返回一个本地数组的地址,该数组的生命周期以该函数结束。

改变

int last[b];

int *last = malloc(sizeof(int) * b);

不要忘记在 printf

之后调用 free(r);

关于c - 在 c 中返回带有自定义函数的数组不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50496799/

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