john smithair
دوشنبه 30 مرداد 1391, 16:31 عصر
سلام دوستان
من یه کدی نوشتم که الگوریتم دایجسترا رو اجرا میکنه. درست هم کار میکنه ولی نمیدونم چرا بعد از اجرای برنامه خطا میده و مینویسته
Stack around variable g was corrupted.
کد رو براتون گذاشتم. کاملا اجرا میشه. نتایجی هم که میده درسته ولی بعد از اینکه کار تموم میشه ارور میده و رو گیومه ی بستن بلاک main ارور میگیره.
#include "Dijekstra.h"
const int nodecont=5;
//main
int main()
{
Graph g;
g.minWeight ();
int n,e;
for(int i=0;i<nodecont;i++)
g.addNode(i);
g.addEdge(0,1,10);
g.addEdge(0,2,3);
g.addEdge(1,2,1);
g.addEdge(1,3,2);
g.addEdge(2,1,4);
g.addEdge(2,3,8);
g.addEdge(2,4,2);
g.addEdge(3,4,7);
g.addEdge(4,3,9);
Dijekstra dij(g);
dij.singleSourceShortestPath(0);
dij.printGraph ();
return 0;
}
اگر کسی میدونه دلیلش چیه که این ارور رو میده و کمکم کنه خیلی ممنون میشم.
تو سایت سرچ هم کردم. یه پست بود که اون هم زیاد به این کد من مربوط نمیشد.
من یه کدی نوشتم که الگوریتم دایجسترا رو اجرا میکنه. درست هم کار میکنه ولی نمیدونم چرا بعد از اجرای برنامه خطا میده و مینویسته
Stack around variable g was corrupted.
کد رو براتون گذاشتم. کاملا اجرا میشه. نتایجی هم که میده درسته ولی بعد از اینکه کار تموم میشه ارور میده و رو گیومه ی بستن بلاک main ارور میگیره.
#include "Dijekstra.h"
const int nodecont=5;
//main
int main()
{
Graph g;
g.minWeight ();
int n,e;
for(int i=0;i<nodecont;i++)
g.addNode(i);
g.addEdge(0,1,10);
g.addEdge(0,2,3);
g.addEdge(1,2,1);
g.addEdge(1,3,2);
g.addEdge(2,1,4);
g.addEdge(2,3,8);
g.addEdge(2,4,2);
g.addEdge(3,4,7);
g.addEdge(4,3,9);
Dijekstra dij(g);
dij.singleSourceShortestPath(0);
dij.printGraph ();
return 0;
}
اگر کسی میدونه دلیلش چیه که این ارور رو میده و کمکم کنه خیلی ممنون میشم.
تو سایت سرچ هم کردم. یه پست بود که اون هم زیاد به این کد من مربوط نمیشد.