Ios 线程1:使用C代码在Xcode中执行错误访问
我正在使用Xcode编写C语言的代码。我犯了一个奇怪的错误 如果for循环的范围(Ios 线程1:使用C代码在Xcode中执行错误访问,ios,c,xcode,multithreading,Ios,C,Xcode,Multithreading,我正在使用Xcode编写C语言的代码。我犯了一个奇怪的错误 如果for循环的范围(height2,width2)约为500600,则代码正常工作。但如果我改变范围超过800,那么它会给我以下的错误 线程1:EXE\u错误\u访问(代码-2,地址=07x33434…) for(int i=0;i 线程1:EXE\u错误\u访问(代码-2,地址=07x33434…) 当您在代码中访问未分配的或多个已分配的内存时,会出现此错误 查看您的代码和解释,我可以猜您可能会在img_op[]]或img_IP[]
height2,width2
)约为500600,则代码正常工作。但如果我改变范围超过800,那么它会给我以下的错误
线程1:EXE\u错误\u访问(代码-2,地址=07x33434…)
for(int i=0;i
线程1:EXE\u错误\u访问(代码-2,地址=07x33434…)
当您在代码中访问未分配的或多个已分配的内存时,会出现此错误
查看您的代码和解释,我可以猜您可能会在img_op[]]或img_IP[]][]
array的情况下访问更多内存
还可以尝试启用NSZombies
非常容易启用:
双击XCode中“可执行文件”中的可执行文件
打开“参数”选项卡
在“要在环境中设置的变量”中(这是
在底部,请注意您编辑的是哪一个)单击“+”按钮并选择
变量名称输入“NSZombieEnabled”,值输入“YES”
我不知道C,但我猜img_op是一个带数组的数组,也许你用800+就出界了?
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);
}
}