[问题] 基本问题不晓得要怎写

楼主: hardware (哈味)   2015-02-03 11:40:31
开发平台(Platform): (Ex: VC++, GCC, Linux, ...)
GCC
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
NO
问题
#include <cstdlib>
#include <iostream>
using namespace std;
int VDR1 = 3000;
int VDR2 = 3500;
int VDR3 = 2500;
int BRM[] = {1352,1683,2102,2305,2666,2943,3201};
int SVCLayer,temp;
int SetVR(int VBR[],int VDR) //这里只要VDR大于阵列,执行结果就会出错 不知怎改
{
SVCLayer = 0;
do{
SVCLayer ++;
}
while(VBR[SVCLayer] < VDR);
return VBR[SVCLayer-1];
}
void GetVR()
{
cout << BRM[SVCLayer-1] << endl;
cout << SVCLayer-1 <<endl;
}
int main()
{
SetVR(BRM,VDR3);//没问题
GetVR();
SetVR(BRM,VDR1);//没问题
GetVR();
SetVR(BRNM,VDR2); //只要呼叫超过BRM阵列的值,就会出错
GetVR();
system("pause");
return 0;
}
作者: wenyonba (射后不理很XX啊!!!!)   2015-02-03 12:16:00
因为阵列里的值没一个比VDR2大,SVCLayer一直++,就会存取到不合法的位址SetVR里应该要加个判断是不是已经到阵列尾巴了
楼主: hardware (哈味)   2015-02-03 16:06:00
感谢

Links booklink

Contact Us: admin [ a t ] ucptt.com