在结构体中如何使用动态数组?

查看 165|回复 11
作者:icemanpro   
struct a1{
int a;
int b;
};
struct bb{
a1 list[];
}
像这样在结构体 bb 中定义了 a1 类型的动态数组。
应该如何使用 bb 这个结构体?有没有代码

结构体, struct, int, 动态

liyang5945   
需要知道 a1 的 length ,不然没法搞
codehz   
c 里有 flexible array member ( https://en.cppreference.com/w/c/language/struct ),c++里可没有,不建议搞
ArcanusNEO   
如果不能用 STL 容器的话,可以试试零长度数组这个 gcc 扩展,缺点是 msvc 用不了、会引入很多 C 风格代码、一个结构体里只能存在一个零长度数组
ArcanusNEO   
@ArcanusNEO stackoverflow 上 flexible array member [相关的讨论]( https://stackoverflow.com/a/67894135)
ysc3839   
@ArcanusNEO MSVC 好像能用?印象中 Windows SDK 里面就用到了。去搜索了一下,只是会产生 warning 。
thorneLiu   
土问这个 a1 list[]合法吗
为啥不用 STL?
ArcanusNEO   
@ysc3839 搜了一下似乎确实可以,不过印象里曾经因为相关的写法编译失败。可能比 gcc 多一些限制,也可能只是我记错了。。。
tyzandhr   
为什么不用指针?
ArcanusNEO   
@thorneLiu
在 C 里面合法,C++里不合法;
正常情况下 C++用 STL 应该更合适一点
您需要登录后才可以回帖 登录 | 立即注册

返回顶部