2013-03-18 54 views
-1

第一次在這裏問一個問題,但我真的很困惑。實際上,這就是我想要做的事:memcpy和訪問錯誤問題

- (MyStruct)methodName:(OtherStruct)foo 
{ 
    MyStruct bar; 
    memcpy(&bar, &foo, sizeof(MyStruct)); 
    return bar; 
} 

我試圖算出這個已經得到了我這個信息:

  • 的sizeof(巴)== 64
  • 的sizeof(富) == 80
  • 的sizeof(MYSTRUCT)== 64
  • 的sizeof(OtherStruct)== 80

我得到EXC_BAD_ACCESS(代碼= 1,地址= 0x0)。 我錯過了一些愚蠢的東西嗎?

+0

如果foo是一個指針,那麼&foo是一個指針指針,並且您從那裏複製到條上。 – SecurityMatt 2013-03-18 00:48:01

回答

0

EXC_BAD_ACCESS在說的是你做了一些事情,導致指針被解除引用,並且內存位置不在分配給你的程序塊的內部,所以這是一個MMU問題。

+0

memcpy的第三個參數是否限制複製的字節數?我正在複製的結構與我從中複製的結構具有相同的成員,所以我只是抓住這些結構。 – Tyler 2013-03-18 00:52:00

+0

哦,我發現了問題!問題是我將此方法的返回值分配給一個取消引用的指針。我剛剛看到memcpy和方法調用錯誤,並假定它在那裏。謝謝您的幫助! – Tyler 2013-03-18 00:56:53