【发布时间】:2014-08-26 06:16:13
【问题描述】:
我想定义一个由用户输入大小的数组组成的新数据类型。例如,如果用户输入 128,那么我的程序应该创建一个新类型,它基本上是一个 16 字节的数组。这个结构的定义需要是全局的,因为此后我将在我的程序中使用该类型。有必要为这种结构设置一个动态大小,因为我最终将拥有一个由该类型变量填充的庞大数据库。
我现在的代码是:
struct user_defined_integer;
.
.
.
void def_type(int num_bits)
{
extern struct user_defined_integer
{
int val[num_bits/sizeof(int)];
};
return;
}
(不工作)
我发现,最接近我的问题的是: I need to make a global array in C with a size inputted by the user (这没有帮助)
有没有办法做到这一点,以便在整个文件中识别我的结构?
【问题讨论】:
-
上面的代码无法编译,函数内定义的结构具有局部作用域;不是没有工作。
-
行不通。使用 malloc 和长度字段。
-
注意,除法的结果需要向上取整或确保
num_bits能被sizeof(int)整除,否则将没有空间存储最后一位
标签: c arrays dynamic-arrays user-defined-types