【发布时间】:2012-04-28 10:01:17
【问题描述】:
我使用 6 个整数数组,每个数组包含 256 个元素。相当标准,我想。
我面临的问题是,当我将所有这些数组初始化为全 0 时,我得到一个总线错误:10。每次在我的循环的第 240 次迭代中。
这是我的头文件...
class histEqImage {
private:
int histogramR[256];
int histogramG[256];
int histogramB[256];
int dashR[256];
int dashB[256];
int dashG[256];
void initHistograms();
public:
//Other declarations here...
};
这是出现问题的函数...
void histEqImage::initHistograms() {
//Ensure all the values in the histogram are at 0.
for(i = 0; i <256; i++) {
histogramR[i]= 0;
histogramG[i] = 0;
histogramB[i] = 0;
dashR[i] = 0;
dashG[i] = 0;
dashB[i] = 0;
}
}
因此,每次我执行这部分代码时,程序都会在 i=240 处崩溃。抱歉,为了更好地说明,它发生在dashB[i] = 0; 行中
这让我烦恼不已,我看不到我的数组范围之外的地方,而且我没有在动态内存方面使用远远超出我理解的能力。
任何帮助,都会有所帮助。
【问题讨论】:
-
你也可以显示分配代码吗?你用的是
new[],对吧? -
这些只是简单的数组,根本没有分配。
-
不,我的意思是
histEqImage,你是在堆栈上分配它,动态分配,还是作为数组的一部分? -
啊,对。对不起。它只是在我的主函数
histEqImage pictureDisplay;中声明的 -
请展示一个独立的可编译示例。