菜鸟教程小白 发表于 2022-12-13 16:19:25

iphone - 在大图像分辨率上执行时出现 EXC_BAD_ACCESS 错误


                                            <p><p>我已经在图像上实现了一个递归函数,它调用它的相邻像素直到条件最终确定,我已经能够成功运行此代码,达到 200x200 图像分辨率,但是当图像大小增加时,它会因 <code>EXC_BAD_ACCESS< 而崩溃</code> 错误在以下堆栈行 <strong>___lldb_unnamed_function782$$libicucore.A.dylib</strong>。我检查了我的代码并且无法检测到任何错误,可能是由于递归回调函数太多。如果有人有任何想法,请告诉我。</p>

<p>这是我的递归代码:</p>

<pre><code> -(void)magicImageContext:(unsigned char*)data point:(CGPoint)point red:(unsigned char)red green:(unsigned char)green blue:(unsigned char)blue bytesPerPixel:(NSInteger)bytesPerPixel bytesPerRow:(NSInteger)bytesPerRow size:(long long int)size width:(NSInteger)width height:(NSInteger)height maskedData:(unsigned char*)masked_data{
for(int x = point.x-1; x&lt;=point.x+1; x++){
    for(int y = point.y-1; y&lt;=point.y+1; y++){
      if((x == point.x) &amp;&amp; (y == point.y)) {
      }
      else if((x&lt;0) || (y&lt;0) || (x&gt;=width) || (y&gt;=height)){
      }
      else if(){
            int byteIndex = (bytesPerRow * y) + x* bytesPerPixel;
            CGFloat red2   = (data );
            CGFloat green2 = (data);
            CGFloat blue2= (data);
            if(){
                NSLog(@&#34;x= %d, y= %d %d&#34;,x,y,byteIndex);
                //mark pixels on masked image
                ;
                ;                }
      }
    }
}
}
</code></pre></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>如果您对图像的所有像素使用递归,那么输入大图像肯定会导致堆栈溢出。</p>

<p>考虑重写您的函数以使用显式堆栈和循环以避免递归。这也可以提高应用的性能,因为它避免了相对昂贵的函数调用。</p></p>
                                   
                                                <p style="font-size: 20px;">关于iphone - 在大图像分辨率上执行时出现 EXC_BAD_ACCESS 错误,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/12435404/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/12435404/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: iphone - 在大图像分辨率上执行时出现 EXC_BAD_ACCESS 错误