一段小程序
数据结构的定义
typedef struct wavmid //CListCtrl 类型
{
char No[20]; //CListCtrl 序号
char value[50]; //CListCtrl wav\mid
struct wavmid *next;
}RNode;
typedef struct key //key 类型
{
RNode *head;
int length; //key 中元素个数
}KNode;
typedef struct keyarray
{
KNode k[4];
int length; //链表当前的长度
}KRNode;
void CTest7Dlg::CListAsSt(const int nkey) //保存数据
{
int max_row = m_ctrlWav_Mid.GetItemCount(); //获得list列表的长度
RNode *p = key.k[nkey].head; //获得表头
key.k[nkey].length = max_row;
if(max_row>0)
{
for(int i = 0;i<max_row;i++) //把 q 插入到表头后面
{
q = (RNode *)malloc(sizeof(RNode));
strncpy(q->No,(LPCTSTR)m_ctrlWav_Mid.GetItemText(i,0),sizeof(q->No));
strncpy(q->value,(LPCTSTR)m_ctrlWav_Mid.GetItemText(i,1),sizeof(q->value));
q->next = NULL;
p->next = q;
p = q;
q = NULL;
}
}
p = key.k[nkey].head;
while(p->next) //测试
{
AfxMessageBox(p->No);
}
}
为什么测度 p->为无限长? 读出乱码..