ios - 线程 1 : EXC_BAD_ACCESS in Xcode with C code

标签 ios c xcode multithreading

我正在使用 Xcode 用 C 语言编写代码。我收到奇怪的错误。

如果 for 循环的范围(height2, width2)在 500,600 左右,代码工作正常。但是,如果我更改的范围超过 800,则会出现以下错误。

"Thread 1: EXE_BAD_ACCESS(CODE - 2, address = 07x33434...)"

for (int i = 0 ; i <height2 ; i++)
{
    for (int j = 0 ; j< width2 ; j++)
    {
        float height_Frac_Idx = i*scale_h;
        float width_Frac_Idx = j*scale_w;
        int height_idx, width_idx;
        height_idx = (int) height_Frac_Idx;
        width_idx =  (int) width_Frac_Idx;
        float del_h = height_Frac_Idx - height_idx;
        float del_w = width_Frac_Idx - width_idx;


        img_op[i][j] = (img_IP[height_idx][width_idx])*(1 - del_h)*(1-del_w) + (img_IP[height_idx+1][width_idx])*(del_h)*(1-del_w) + (img_IP[height_idx][width_idx+1])*(1 - del_h)*(del_w) + (img_IP[height_idx+1][width_idx+1])*(del_h)*(del_w);            

    }
}

最佳答案

"Thread 1: EXE_BAD_ACCESS(CODE - 2, address = 07x33434...)"

当您在代码中访问未分配的或更多已分配的内存时,会出现此错误。

查看您的代码和解释,我可以猜测您可能在 img_op[][] 或 img_IP[][] 数组的情况下访问更多内存。

也可以尝试启用 NSZombies 非常容易启用:

  1. 在 XCode 的“可执行文件”中双击您的可执行文件

  2. 打开“参数”选项卡

  3. 在“要在环境中设置的变量”(这是列表中的 底部,小心你编辑的是哪一个)点击“+”按钮,然后 变量名称输入“NSZombieEnabled”,值“YES”

关于ios - 线程 1 : EXC_BAD_ACCESS in Xcode with C code,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33852333/

相关文章:

ios - NSOperationQueue在网络切换时取消当前的NSOperation

testing - 如何测试我的 iOS 应用程序

iphone - 如何模拟点击(越狱)iPhone 的主屏幕?

c++ - 如何检测未使用的宏定义和类型定义?

objective-c - RaptureXML 奇怪的行为

ios - 建立网络连接后,我可以让 iOS 7 在后台发送图片吗?

c - 在 c 中使用数组分配 LIFO 内存的目的是什么?

c - 我怎样才能在某些情况下在 C 中使用 getch()?

iphone - 在 iOS 7 中,viewForHeaderInSection 部分是从 1 而不是从 0 开始

xcode - 如何在 addSubview 之后添加约束,以便 subview 随父 View 调整大小