假如有一個函式func1,它包含一個引數LPBYTE* p__ListData,最終要得到是一個位元組陣列
按我的理解應該只用LPBYTE就可以,不過這個函式是供應商提供的
現在的問題是我在呼叫之前一般如何初始化該引數p__ListData,回傳的大小根據實際情況的不同,會有不同的結果
uj5u.com熱心網友回復:
這種型別的形參需要的實參是LPBYTE的陣列名
或者
LPBYTE的變數的地址
或者
和它型別一致的指標變數,指向malloc來的一片記憶體空間
uj5u.com熱心網友回復:
先自個頂一下uj5u.com熱心網友回復:
LPBYTE如何定義的????uj5u.com熱心網友回復:
供應商提供,先搞清楚指向的記憶體是函式內部申請釋放還是外部申請釋放還是靜態記憶體不用申請釋放。uj5u.com熱心網友回復:
這種型別的形參需要的實參是LPBYTE的陣列名
我現在是這樣寫的,編譯沒有問題,也可以順利運行,只是不能回傳正確結果,
BYTE p__Arr_Byte[9024];
LPBYTE* lpListData;
p__lpByte=(LPBYTE)(p__Arr_Byte);
lpListData=https://bbs.csdn.net/topics/&p__lpByte;
這里一個問題就是p__Arr_Byte是固定大小,但實際上應該要求是動態大小
uj5u.com熱心網友回復:
BYTE p__Arr_Byte[9024];LPBYTE*lpListData=https://bbs.csdn.net/topics/(LPBYTE *)(p__Arr_Byte);
動態大小到底是多大,誰說了算?
uj5u.com熱心網友回復:
就是unsigned char **p__ListDatauj5u.com熱心網友回復:
個人可能性最大的方式是這個引數只要初始為nullptr,就可以
uj5u.com熱心網友回復:
為什么要插進來一個蛇足變數?
BYTE p__Arr_Byte[9024];
LPBYTE* lpListData;
lpListData=https://bbs.csdn.net/topics/(LPBYTE)(p__Arr_Byte);
uj5u.com熱心網友回復:
哦,還缺個星uj5u.com熱心網友回復:
實參用陣列名的意思其實是func1(p__Arr_Byte);
這種,沒必要拐彎抹角。
當然,你的函式可能還需要其他引數,也不叫這個名字,以此類推。
uj5u.com熱心網友回復:
靠譜的SDK確實應該這么做(比如我們公司,哈哈),但那得是個二級指標才行吧,看LPBYTE不像是一個指標,所以可能是個坑
uj5u.com熱心網友回復:
lpxxx應該是指標,通過typedef 過來的轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/268744.html
標籤:新手樂園
