【发布时间】:2021-01-23 03:13:03
【问题描述】:
我正在用 C 语言编写一个程序,我想读取一个数组长度,并创建一个该大小的数组。但是,C 不支持可变长度数组,所以我想知道如何做到这一点。我不想更改我的编译器设置。
我正在考虑以某种方式使用预处理器指令来发挥我的优势,但我无法这样做。几乎,我有一个包含我想要的大小的整数变量,我想用 0 声明数组。另外,我不想使用 malloc/其他动态数组方法。
这可能看起来很基本,但我一直在努力做到这一点。如果重要,我将通过 I/O 接收数组大小。
【问题讨论】:
-
抱歉,我忘了指定 - 我想在没有 malloc 的情况下执行此操作
-
没有 malloc 就无法做到。要么定义大小编译时间,要么分配内存运行时。
-
我通过 I/O 接收整数。这有关系吗?
-
否 - 如果您直到运行时才知道大小,
malloc或其同类之一是您唯一的动态分配方式。 -
顺便说一句:C 确实支持 VLA(只是 C++ 不支持)...
标签: c