簡體   English   中英

從ObjC傳遞char數組到C

[英]Passing char array from ObjC to C

我有一個包含純c代碼和由ObjC編譯器[ .m file ]處理的c代碼的項目。 由ObjC編譯器處理的類具有以下類別:

unsigned long getMessage(char ** message) {
 *message = (char*)calloc(1, [dMessage bytes], [dMessage length]);
 memcpy(message, [dMessage bytes], [dMessage length])
return [dMessage length];
}

dMessage是一個充滿文本的NSData對象。

在C端,我這樣做:

char* msg = NULL
unsigned long length = getMessage(&msg)

調用后, msg為空,但長度變量設置為正確的大小。

我應該怎么做才能在objc和c之間傳遞char*

謝謝

您將錯誤的參數傳遞給calloc() 它需要兩個參數,但是您要傳遞三個參數。 編譯器應該為此大聲疾呼。

由於第二個參數是NSDatabytes指針,因此您實際上在請求一些大的分配。 可能是失敗了。 通常會在控制台上記錄有關該故障的消息。

你要:

*message = (char*)calloc([dMessage length], 1);

這是我的代碼中的錯誤。

我應該打電話

memcpy(*message, [dMessage bytes], [dMessage length])

代替

memcpy(message, [dMessage bytes], [dMessage length])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM