我在keil中使用链表,我有3个结构,它们是:
typedef struct CanSnifferTrame Trame ;
struct CanSnifferTrame{
uint32_t id;
uint32_t lastTime;
uint8_t prevData[8];
uint8_t lastData[8];
uint32_t freq[8];
uint32_t lastfreq[8];
uint32_t intervalle[8];
uint8_t changing;
uint8_t count ;
Trame *next ;
};
typedef struct Tete Sniffer ;
struct Tete {
Trame *first;
};
typedef struct Result Result ;
struct Result{
uint8_t snifferC;
Sniffer *tete;
};
我尝试只是初始化列表
Result *ResultVar = malloc(sizeof(ResultVar));
ResultVar->snifferC = 0 ;
ResultVar->tete = malloc(sizeof(Sniffer));
ResultVar->tete->first = NULL;
调试时,ResultVar->tete->first
是NULL
,但列表不为空,它有无穷大的元素(id
、lasttime
、freq
、...(和垃圾字符。
您需要malloc(sizeof(*ResultVar))
或malloc(sizeof(Result))
而不是malloc(sizeof(ResultVar))
。