我想要达到的效果是开辟一个动态数组,数组的长度每次都会改变。遇到的问题是,发现上一次的首元素的内存一直无法释放,于是本人通过调试测试每一次数组各元素的值来判断哪里出错,发现程序到space=NULL,space[0]还是没有被清零,以下是我的测试程序
其实你可以这样做,不用声明数组,而是声明一个char* array这样的指针变量,用的时候把这个指针变量指定到要用的内存(这块内存可以事先分配好或指定到一个程序不可能用到的足够大的内存),用的时候可以像数组一样用的,比如array[0],array[1]这样用,跟数组的用法一样,这个方法还有一个好处,由于array是指针变量,所以你可以随便指定到某个内存访问其中的内容,希望能帮到你。
我也是这样想的 可是内存不能释放 我私信给你 你看下
就经验之谈,单片机能用联合体就别用结构体,可以用联合体包裹结构体。省去动态分配空间问题。更稳定。malloc在单片机里就是和不定时炸弹!
例如
uion
{
u8 code[4];
struct {
u16 a;
u16 b;
}stu;
}stu;
有厉害的大神请多指教。