我有一個函數,它將一個void *緩衝區作爲參數,並且必須將它傳遞給另一個帶有unsigned char *的函數。下面是一連串事件:指針行爲奇怪的情況從無效*到無符號字符*
unsigned char data[4];
populate(&data);
void populate (void * buf)
{
...
unsigned char * datump = ((unsigned char *)buf);
if (Unwrap(datump))
{...}
}
bool Unwrap (unsigned char* buf)
{
...
}
當我繼續前進,這樣做:不折((無符號字符*)BUF)時,出現「無匹配的函數調用來解開[(無符號字符*) 但如果我使用像我在代碼中的轉換,它的工作原理!爲什麼是這樣的?
現在的問題是我現在必須做一些事情(請幫助這個請!)將數據從無符號char *複製到void *。
任何幫助都不勝感激
我不明白爲什麼它不應該與演員合作。這似乎很奇怪。 –
嘗試不使用''數據'的'&'from。 'data ==&data [0]'。 –
在代碼中顯示失敗的上下文。指定是否使用C或C++進行編譯。什麼是'['in'Unwrap [(unsigned char *)「,是一個錯字?什麼_other_ typos? – chux