PDA

View Full Version : سوال: خطا در اجرای برنامه : Abnormal program termination



Reza_eric
یک شنبه 10 اسفند 1393, 21:10 عصر
سلام خدمت تمام دوستان من در اجرای یک برنامه به مشکل برخورده ام
برنامه نویسی در زبان Borland C++‎‎‎‎‎‎‎‎‎‎‎‎
این موضوع رو در تاپیک دیگه ای به نحو دیگه ای عنوان کرده بودم و از نظرات خوب دوستان استفاده کردم اما راه حل مناسبی پیدا نکردم که مشکل برطرف بشه خواهش می کنم اگر راه حلی مد نظرتون هست عنوان کنید . بسیار ممنون
در این قسمت کدهای برنامه ای رو با محوریت موضوع برنامه خودم و البته فقط قسمتی که باعث بروز مشکل هست رو قرار دادم ، مشکل به خاطر حافظه هست .
وقتی از بین پارامتر های سه بعدی زیر فقط دو تا از اون ها رو استفاده می کنم برنامه بدون مشکل اجرا میشه . اما وقتی تعداد اون ها رو بالاتر می برم برنامه به مشکل برخورده و خطای زیر رو به سرعت نمایش داده و محو میشه
Abnormal program termination
در حال حاضر من حتما هم زمان به تمام این آرایه های سه بعدی نیاز دارم و نمی تونم از دستور Delete استفاده کنم چون همزمان نیاز دارم که بر روی تمام اون ها عملیاتی رو انجام بدم از طرفی هم ذخیره ی اون ها در یک فایل و بازیابی مجدد به نظرم بی فایده میاد چون باید دوباره همه با هم بازیابی شوند چون همزمان روی تمام اون ها و با هم عملیاتی انجام میشه


#include<iostream.h>
#include<conio.h>
#include<math.h>
#include<fstream>
#include<stdlib.h>
#include<stdio.h>
#include<iostream>
#include<iomanip>

float *x=0 ;
float(*test)[100]=0;
float(*a)[100][1000]=0;
float(*b)[100][1000]=0;
float(*c)[100][1000]=0;
float(*d)[100][1000]=0;
float(*e)[100][1000]=0;
float(*f)[100][1000]=0;

int main(){

float g , h , i ;

x = new float [1000];
test = new float[1000][100];

a = new float[1000][100][1000];
b = new float[1000][100][1000];
c = new float[1000][100][1000];
d = new float[1000][100][1000];
e = new float[1000][100][1000];
f = new float[1000][100][1000];

cout << " Enter g , h \n";
cin>>g>>h;

i=g+h;
cout<<" i = "<<i ;

getch();
return 0;
}

rahnema1
یک شنبه 10 اسفند 1393, 22:04 عصر
سلام، شاید بهتر بود مساله ای که می خواهید حل کنید را کاملتر می گفتید شاید نیازی به این حجم نباشه در هر صورت لازم نیست فایلها به طور کامل روی حافظه بیان بلکه فایل قابلیت seek داره و میشه به محلهای مورد نظر رفت و اطلاعات اونجا را خواند

Reza_eric
دوشنبه 11 اسفند 1393, 01:29 صبح
بله حق با شماست و از توجهتون سپاسگزارم ، اما من برنامه ی نسبتا طولانی ای از نظر خودم نوشتم و توضیح کامل اون برنامه در یک نوشته مقدور نیست .
اما به طور کلی به این دلیل می گم که تمام این پارامترها را به طور همزمان نیاز دارم که درواقع مجبور هستم سه پارامتر رو به طور همزمان در یک دستور if با سه پارامتر دیگه مقایسه کنم و یک سری مقادیر جدید رو در پارامتر های هفتم ، هشتم و نهم ذخیره کنم . و اگر تعداد آرایه ها رو کم کنم ، دقت محاسبات من پایین می یاد .
در مورد موضوعی که فرمودید خواهش می کنم در صورت امکان یک مثال ارائه کنید .

rahnema1
دوشنبه 11 اسفند 1393, 13:41 عصر
بله حق با شماست و از توجهتون سپاسگزارم ، اما من برنامه ی نسبتا طولانی ای از نظر خودم نوشتم و توضیح کامل اون برنامه در یک نوشته مقدور نیست .
اما به طور کلی به این دلیل می گم که تمام این پارامترها را به طور همزمان نیاز دارم که درواقع مجبور هستم سه پارامتر رو به طور همزمان در یک دستور if با سه پارامتر دیگه مقایسه کنم و یک سری مقادیر جدید رو در پارامتر های هفتم ، هشتم و نهم ذخیره کنم . و اگر تعداد آرایه ها رو کم کنم ، دقت محاسبات من پایین می یاد .
در مورد موضوعی که فرمودید خواهش می کنم در صورت امکان یک مثال ارائه کنید .

اگه امکانش نیست که چند بعدی به یک بعدی کاهش پیدا کنه از این برنامه استفاده کنید جهت استفاده از فضای دیسک:
http://barnamenevis.org/showthread.php?150444&p=2182012&viewfull=1#post2182012