c++指標沒學好,請教個問題,
boolean fun(char* pszPath)
{
char szFileList[][MAX_PATH * 2] = { 0 };
int iNum=searchFile(pszPath, szFileList[][MAX_PATH * 2]);
//處理完成后如何安全釋放記憶體
}
int searchFile(char* pszDirectory, char szFileList[][MAX_PATH * 2])
{
......
//查找檔案
char szFindFileName[MAX_PATH * 2] = { 0 };
//查找的檔案名存在szFindFileName,如何加入szFileList,回傳
......
//回傳查找到的檔案數量
return inum;
}
uj5u.com熱心網友回復:
陣列的尺寸,貌似不能用變數吧。得用一個常數,比如,10,100。如果MAX_PATH是你預定義的也行,但不能*2。這樣定義后,陣列記憶體自動釋放。uj5u.com熱心網友回復:
預定義MAX_PATH 之后,這樣定義沒問題,空間分配在堆疊上,函式回傳自動就釋放掉了char szFileList[][MAX_PATH * 2] = { 0 };
下面這樣定義函式有問題吧
int searchFile(char* pszDirectory, char szFileList[][MAX_PATH * 2])
可以定義為
int searchFile(char* pszDirectory, char **szFileList)
uj5u.com熱心網友回復:
從語意上我不能理解為什么要把szFindFileName加入szFileList,但是你確實需要的話,就是在szFileList找到個空閑行,然后strcpy進去即可。
uj5u.com熱心網友回復:
碰到提交按鈕了就是strcpy(szFileList[i],szFindFileName);
前提是你知道那行空閑或者可用。
uj5u.com熱心網友回復:
函式定義沒有問題..................
uj5u.com熱心網友回復:
你應該是類似要實作遍歷目錄檔案的功能吧,你可以用list或vectorstruct
{
long filesize;
char filename[128];
...
}findfile;
vector <fildfile *>user_file_list;
int searchFile(char* pszDirectory, vecotor * findfile szFileList)
就算沒問題,你需要內部帶回內容的,必須定義為指標
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/266066.html
標籤:C++ 語言
