我在h檔案中定義了struct
typedef struct fenlei5{
CString name;
CStringArray* pinpai;
}fl5;
typedef struct fenlei{
CString name;
int num;
fenlei5* fenlei5[100];
}fl0;
fl0 fl;然后在cpp檔案中的 oninit初始化函式中定義了這些
fl.num = 0;
CStringArray a1;
a1.Add(_T("馬甲1"));
fl5 fl5a1;
fl5a1.name = _T("馬甲");
fl5a1.pinpai = &a1;
fl.fenlei5[fl.num] = &fl1a1;
fl.num++;
//////////////////////////////////////////////////////////這時fl.fenlei5[0]->name 可以輸出是馬甲
但是oninit初始化結束后 在list串列中讀取這個fl.fenlei5[0]->name就顯示指標錯誤?
請問怎么解決
ps:實際我的程式是fl,fl1,fl2,fl3,fl4,fl5 每個都是一個struct體 fl中有fenlei1[100] fl2中有fenlei3[100] 以此類推
uj5u.com熱心網友回復:
直接用CStringArray不要用指標,如果需要二維,就CStringArray<CStringArray>嵌套uj5u.com熱心網友回復:
我需要的是CStringArray + 一個CString 保存分類名 所以只用CStringArray<CStringArray> 沒法實作啊
uj5u.com熱心網友回復:
如果用 fenlei5 * 指標的話 建議 用 new / delete 在堆上分配新, 堆疊上的在超出作用域后會被清理typedef struct fenlei
{
CString name;
int num;
CArray <f15> fenlei5;
}f10;
uj5u.com熱心網友回復:
你把這兩個再包裝成一個結構體就可以了
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/106580.html
標籤:基礎類
上一篇:VisualStudio2013 如何跟入執行緒進行除錯
下一篇:專案微管理39 - 懲罰
