在ObjC類的接口我已這些定義:編譯器警告「的malloc結果轉換成用的sizeof操作數類型不兼容的點」
unsigned m_howMany;
unsigned char * m_howManyEach;
...
再後來在我有這樣的代碼:
m_howManyEach = malloc(sizeof(unsigned) * m_howMany);
這是我得到警告「的malloc結果轉換爲unsigned char類型的指針,這與操作數的sizeof無符號整型不相容」
能如此請解釋在這種情況下malloc()
的正確使用方法,以及如何去掉這個警告?
謝謝Jody的額外解釋。它幫助我理解了基礎理論。我將使用unsigned int,因爲char或short的範圍可能無法覆蓋我之後的值範圍。 4字節應該很多。 – TrekOnTV2017