请问长度可变的动态结构体数组定义和使用使用范围的问题

今天遇到了这么一个问题动态結构体数组定义和使用一直在报错,有点懵查了报错的问题也没有找到根源。

一个报错信息是调试的时候一直gdb说上下文没有对应的symbol按照网上的说法加了-g 等参数还是有这个问题。

另一个报错问题是运行的时候在最后程序终止运行根据返回代码查出来是数据越界之类的问題。

之后我写了一个简化版本结果发现简化版本反而没有报错,所以想求助下这个问题出在哪儿了.


一般我们计算结构体的大小都习慣于使用sizeof但对于可变大小结构体就不能用sizeof来的那么简单了,如结构体:

在接收方处理时也要计算nSize的大小,亦不能直接sizeof(TMystruct)来计算

以后如需偠用到可变大小结构体时可在结构体中加入结构体长度或结构类型,方便接收方分析结构体改进如下:

函数func需要对stu[0]、stu[1]2个参数进行运算運算结果与预期不符。

把参数值printf出来发现不对:

前两个printf语句在if语句里面输出正确;

后两个printf语句在if语句外面,输出错误

现在func只能写在if语呴外面,而stu[0]、stu[1]的长度只能在if语句内部定义请问该如何解决?才能在if语句外面获取stu[0]、stu[1]正确的值

我要回帖

更多关于 结构体数组定义和使用 的文章

 

随机推荐