gpt4 book ai didi

c - C 中带有指针的可变大小数组/类似数组?

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

我认为我的措辞可能不完全准确,但请多多包涵。

我想做的是编写代码,允许用户输入任意数量的数字并将它们存储在一个数组中,以便在另一段代码中使用。但是我认为我正在为如何正确使用指针来实现这一目标而苦苦挣扎。这是我目前的代码:

int n = 0, marks[] = {0};
while (EOF != scanf("%d", marks+n))
{
n++;
int marks[n]=marks;
}

int *i_p=marks;

不幸的是,我无法用我的 C 版本初始化可变大小数组(“错误:可变大小的对象可能未被初始化”),而且我不知道该怎么做。我应该更改什么以及如何使该程序正常工作?

注意:这个问题是学校的练习,虽然我阅读了一些使用 calloc/malloc 的其他问题的答案,但我们不希望知道或使用它,所以如果可能的话我更喜欢不同的解决方案。

最佳答案

在查看您的最后一行之后 - 不使用 calloc 或 malloc - 有一些替代方案。

第一个也是最简单的替代方法是使用一个非常大的数组,并在数组已满时阻止用户输入更多值。很有可能,如果你问你的老师“允许用户输入的最大数值是多少”,他们会给你一个数字。使用它作为数组的大小。

如果你的老师没有说,那么你可以在运行时询问用户。 C99 引入了一个叫做 Variable Length Array 的东西.这不是一个数组,当你把东西放进去时它会增长——你指定长度,它会在它的余生中保持这个长度。但是您可以在运行时指定长度。因此,只需询问用户他们要输入多少条目,然后创建匹配的数组即可。

关于c - C 中带有指针的可变大小数组/类似数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35000084/

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