我想傳遞一個字符指針數組作爲由C測試驅動器到C輸入++函數(在C包裝提供)獲取作爲輸入到C++函數傳遞的字符*數組的大小
char* LowerList[10];
LowerList[0]="abc";
LowerList[1]="def";
LowerList[2]="hij";
當可在C++側的元件的顯示值被顯示爲
char* LowerList[0]="abc";
LowerList[1]="def";
LowerList[2]="hij";
LowerList[3]=ƒì¶S<\$ UV<35?Ä@
LowerList[34]=ƒ<bad pointer>
我需要傳遞給C++尺寸數組,我可以使用 而已經得到的尺寸(LowerList [計數]),但由於垃圾價值而無法這樣做。 請讓我知道,如果有任何方法我可以通過初始化,內存分配或將其轉換爲向量來找到正確大小的char * LowerList []。
更正上面的代碼爲錯字錯誤
下面是我的一些給我到目前爲止的建議意見:
1)傳遞數組的大小作爲一個參數作爲受過良好的限制對於我的場景.2)轉換到矢量需要的大小可用3)哨兵值我需要添加的位置。正如前面所述,我試圖處理一個場景,其中用戶傳遞值爲3導致失敗。我沒有任何控制權限C用戶使用C測試驅動程序來限制我的C++包裝。
謝謝你的回答。我已經得到了這個初始化的正確大小。 – Abhilash
還有一點..有一種方法,我可以在我的C測試驅動程序中初始化char * LowerList [10],而不指定大小爲10,因爲訪問C++函數的C包裝中的代碼存在訪問衝突錯誤,如果大小小於例2。原因是爲了讓我的C測試驅動程序萬無一失,因爲即使大小爲2的C測試驅動程序編譯也是成功的,但在執行它時失敗。 – Abhilash
@Abhilash:看到我更新的答案。 – JAB