頁:
[1]
C++其他資訊: 嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。
如題,小弟在寫指標的時候,再輸入指標的值的時候發現會出現[其他資訊: 嘗試讀取或寫入受保護的記憶體。這通常表示其他記憶體已損毀。]這個例外,請問各位大大要怎麼解決以下是我的code
Bitmap^ openImg;
openImg=gcnew Bitmap(pictureBox1->Image);
Bitmap^ temp=gcnew Bitmap(openImg ->Width,openImg->Height);
String^ M=textBox4->Text;
int m, r, y, tem=0;
int *cub;
if(String::IsNullOrEmpty(M))
m=0;
else
m=System::Convert::ToInt32(M);
int masksize=m*m;
int u=m/2;
if(m%2 != 0){
for(int i=u;i<temp->Height-u;i++){
for(int j=u;j<temp->Width-u;j++){
cub=new int;
r=0;
y=0;
for(int z=0;z<m^2;z++){
Color RGB=openImg->GetPixel(j-u+r,i-u+y);
*(cub+z)=RGB.B;/////////出錯於這行
r++;
if(r == m){
r=0;
y++;
}
}
for(int k=0;k<m;k++){
for(int q=0;q<8;q++){
if(*(cub+q) > *(cub+(q+1))){
tem=*(cub+(q+1));
*(cub+(q+1))=*(cub+q);
*(cub+q)=tem;
}
}
}
int sommedian=*(cub+(m^2/2));
delete [] cub;
temp->SetPixel(j,i,Color::FromArgb(sommedian,sommedian,sommedian));
}
pictureBox2->Image=temp;
}
}
...<div class='locked'><em>瀏覽完整內容,請先 <a href='member.php?mod=register'>註冊</a> 或 <a href='javascript:;' onclick="lsSubmit()">登入會員</a></em></div><div></div> 你的 z 過大,大到超過 masksize,導致記憶體存取出界,這是因為你的 z<m^2 判斷是錯的,「^」這個運算子做的不是指數,而是 xor,要改的話也要改成 z<m*m
頁:
[1]