我的代碼是Objective-C和C的混合。我簡化了下面的代碼,但它仍然會產生相同的錯誤。在Objective-C的文件:使用指針引起內存錯誤的簡單函數
CGFloat r,g,b = 0.5;
CGFloat x,y,z = 0.0;
foo(r, g, b , &x, &y, &z);
以及C部分(導入C文件):
void foo(CGFloat R, CGFloat G, CGFloat B, CGFloat *X, CGFloat *Y, CGFloat *Z) {
*X = 5;
*Y = 5;
*Z = 5;
}
分配給什麼的指針之一,當錯誤發生 - 它說EXS_BAD_ACCESS 。我錯過了什麼(或沒有正確理解?)。我假設可以在同一個項目中使用單獨的.c和.m文件是很好的......無論如何,它似乎都可以很好地構建。
調試器說什麼? 「X/Y/Z」的內容是什麼? –
@BryanChen調試器不會說什麼,並且X/Y/Z似乎被設置爲隨機值。只是注意到它不會崩潰在64位,只在32位......怪異。 –
你是怎麼稱呼它的?用真實代碼 –