PDA

View Full Version : سوال: Unhandled exception



amybvkht
پنج شنبه 05 مرداد 1391, 14:20 عصر
سلام دوستان تو این قسمت برنامه تو محیط visual stdio 2010 این error هست مشکل کجاس؟؟؟
checkDir(LPSTR s){
FILE *fp=(FILE *)malloc(26000000 * sizeof(BYTE));
fp=fopen(s,"r");
if(fp){
fclose(fp);
return false;
}
return true;
free(fp);
}
:افسرده:

مسعود اقدسی فام
پنج شنبه 05 مرداد 1391, 15:22 عصر
سلام دوستان تو این قسمت برنامه تو محیط visual stdio 2010 این error هست مشکل کجاس؟؟؟



checkDir(LPSTR s){
FILE *fp=(FILE *)malloc(26000000 * sizeof(BYTE));
fp=fopen(s,"r");
if(fp){
fclose(fp);
return false;
}
return true;
free(fp);
}









چه خطایی داده؟

البته خط آخر به خاطر return قبلش هیچ وقت اجرا نمی‌شه. ولی فکر نکنم به اون خطر گیر بده.

amybvkht
جمعه 06 مرداد 1391, 10:47 صبح
سلام این error میده :
Unhandled exception at 0x013889e4 in s2.exe: 0xC0000005: Access violation writing location 0x01393a2c.

حامد مصافی
جمعه 06 مرداد 1391, 11:50 صبح
شما یک اشاره‌گر با FILE رو allocate کردید با یک فضای متناهی. توجه کنید قرار نیست داده‌های فایل روی دیسک در FILE ذخیره شوند. در واقع FILE اشاره‌گری به جایی از حافظه است که می‌توانید به وسیله آن از فایل روی دیسک داده‌ها را بخوانید. از همین رو خط مورد اشاره را به این سان عوض کنید:

FILE *fp;

amybvkht
جمعه 06 مرداد 1391, 16:20 عصر
سلام آقای مصافی ممنونم .اما برنامه از اول به همین صورت بود بعد همین error که عرض کردم وجود داشت فکر کردم شاید به خاطر تخصیص فضا باشه و malloc اضافه کردم که باز حل نشد البته من دوباره به خاطر گفته شما تغییرش دادم و دیدم باز اون error هست .نمیدونم چی کار کنم؟؟:گریه:کمک
bool Cscan::checkDir(LPSTR s){
FILE *fp;
fp=fopen(s,"r");
if(fp){
fclose(fp);
return false;
}
return true;

}

حامد مصافی
جمعه 06 مرداد 1391, 21:44 عصر
یه لحظه حس کردم پیر شدم!
این رو در g++ 4.7.1 تست کردم بدون مشکل کار می‌کنه



#include <iostream>
#include <stdio.h>
using namespace std;

bool checkFile(string dirPath){
FILE *fp;
fp = fopen(dirPath.c_str(),"r");
bool ret;
if(fp)
ret =true;
else
ret = false;

delete fp;
return ret;
}

int main(int argc, char **argv) {
//valid path
cout << "Check for /home/blackdal/exap_web.pdf: ";
cout << checkFile("/home/blackdal/exap_web.pdf");
cout << endl;

//invalid path
cout << "Check for /home/blackdal/nofile.ext: ";
cout << checkFile("/home/blackdal/nofile.ext");
cout << endl;

return 0;
}

amybvkht
یک شنبه 08 مرداد 1391, 08:28 صبح
سلام حامد جون مرسی خیلی لطف کردی.:چشمک: