是否可以在不声明struct中的特定大小的情况下创建数组?

use*_*789 1 c arrays struct pointers

试图创建一个struct包含三个数组.在读取输入之前,我不确定数组的大小.

如果我不确定它们在structinit 中的大小,我如何在struct中初始化这些数组?我将从第一行输入中知道总量.

我将是从使用输入读入的大小.我应该做一个庞大的数字吗?

struct TaskSet
{
    float priority[i];
    float p[i];
    float w[i];
    float d[i];
};
Run Code Online (Sandbox Code Playgroud)

her*_*tao 5

您可以使用大量数字或使用T *arr(与大小一起):

struct TaskSet
{
    float *priority;
    int size_priority;
    ...
    float *d;
    int size_d;
};
Run Code Online (Sandbox Code Playgroud)

PS:malloc一旦从用户读取,您需要使用大小.

  • 由于多种原因,这里的解决方案比使用大量数字要好得多.首先,你永远无法确定我是否"足够大",其次,几乎所有的时间你都会浪费"巨大"的空间.如此处所述,动态分配正是正确的解决方案. (2认同)