相关疑难解决方法(0)

ARC&Malloc:EXEC_BAD_ACCESS

我一直在做一个项目已经有一段时间了,我决定跳到ARC.我偶然发现了一些轰炸的代码,我想知道为什么.我已设法将其简化为此代码段:

typedef __strong id MYID;

int main(int argc, char *argv[])
{ 
    MYID *arr = (MYID *) malloc(sizeof(MYID) * 4);

    arr[0] = @"A";     // always get an EXEC_BAD ACCESS HERE
    arr[1] = @"Test";
    arr[2] = @"Array";
    arr[3] = @"For";

    // uh oh, we need more memory
    MYID *tmpArray = (MYID *) realloc(arr, sizeof(MYID) * 8);
    assert(tmpArray != NULL);

    arr = tmpArray;

    arr[4] = @"StackOverflow";  // in my actual project, the EXEC_BAD_ACCESS occurs here
    arr[5] = @"Is";
    arr[6] = @"This";
    arr[7] = …
Run Code Online (Sandbox Code Playgroud)

c malloc objective-c realloc automatic-ref-counting

5
推荐指数
2
解决办法
1225
查看次数

标签 统计

automatic-ref-counting ×1

c ×1

malloc ×1

objective-c ×1

realloc ×1