结构,数组为c中的变量
发布时间:2020-12-16 06:48:54 所属栏目:百科 来源:网络整理
导读:我需要创建一个数据类型(在本例中为struct),并将数组作为属性.我有一个初始化函数,初始化此数据结构并为数组提供指定的大小.现在的问题是在结构中声明数组.例如“int values []”将要求我在括号中输入数字,例如值[256].应该在结构初始化时指定Th3 256.有没有
我需要创建一个数据类型(在本例中为struct),并将数组作为属性.我有一个初始化函数,初始化此数据结构并为数组提供指定的大小.现在的问题是在结构中声明数组.例如“int values []”将要求我在括号中输入数字,例如值[256].应该在结构初始化时指定Th3 256.有没有办法解决这个问题?
typedef struct { int values[]; //error here int numOfValues; } Queue; 解决方法
结构必须具有在编译时已知的固定大小.如果需要具有可变长度的数组,则必须动态分配内存.
typedef struct { int *values; int numOfValues; } Queue; 这样,您只需将指针存储在结构中.在struct的初始化中,将指针指向一个用malloc分配的内存区域: Queue q; q.numOfValues = 256; q.values = malloc(256 * sizeof(int)); 请记住,只要不再使用,就检查NULL指针的返回值和free()任何动态分配的内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |