gpt4 book ai didi

c - 我对 malloc 和 realloc 的理解有什么问题?

转载 作者:行者123 更新时间:2023-11-30 20:08:34 24 4
gpt4 key购买 nike

我试图创建一个在程序运行时可以调整大小的数组。我已经了解了 malloc 和 realloc 函数,但似乎我显然遇到了问题。这是我编写的函数,它根据循环的周期数创建一个数组。

int* flexibleArray() {
int *arrayFlex = NULL;
int number=0, cnt=0;
while (number!=-1) {
printf("\nInsert the variable: ");
scanf("%d", &number);
if (number==-1){
break;
}
cnt+=1;
arrayFlex = realloc(arrayFlex, cnt * sizeof(int));
arrayFlex[cnt-1] = number;
}
return arrayFlex;
}

我尝试阅读在互联网上找到的有关它的文档,但在重新分配后我无法检索新数组。

int *array;
array = flexibleArray();
int arraySize = (sizeof(array))/(sizeof(int));
for(int i=0; i<arraySize; i++) {
printf("%d ", array[i]);
}

基本上,这是我测试该函数的地方,看看它是否做了它应该做的事情。

我是 C 语言新手,抱歉。谢谢

最佳答案

类似这样的事情应该可以做到。

int* flexibleArray() {                                                          
int *arrayFlex = NULL; // needs to be a pointer
int number=0, cnt=0;
while (number!=-1) {
printf("\nInsert the variable: ");
scanf("%d", &number);
if (number==-1){
break;
}
cnt+=1;
arrayFlex = realloc(arrayFlex, cnt * sizeof(int));
arrayFlex[cnt-1] = number;
}
return arrayFlex;
}

编辑:修正拼写错误。

关于c - 我对 malloc 和 realloc 的理解有什么问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56482548/

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