Skip to content
Snippets Groups Projects
Commit 42afbc23 authored by Eckl, Máté's avatar Eckl, Máté
Browse files

A memóriahiba javítva (heap.cpp 72. sor). Még azért nem árt megérteni pontosan a dolgot.

A proc_test destruktorát azért kellett törölni, mert így biztonságosabb, csak epliciten kell hívni a process-től származott tagfüggvényt.
parent 76ac5369
No related branches found
No related tags found
No related merge requests found
......@@ -28,7 +28,7 @@ class proc_test : public process
void operator=(const proc_test&);
std::string get_name() { return name; }
proc_test* get_next() { return next; }
~proc_test(){this->kill();}
// ~proc_test(){this->kill();}
private:
std::string name;/**< A process neve */
proc_test* next;/**< A következő listaelemre mutató pointer */
......
......@@ -8,7 +8,7 @@
using namespace std;
#ifdef DEBUG
ifstream fin("/home/mate/Dropbox/Egyetem/Tárgyak/2015 tavasz/Programozás alapjai 2/NHF/NHF/tests/test_2");
ifstream fin("/home/mate/Dropbox/Egyetem/Tárgyak/2015 tavasz/Programozás alapjai 2/NHF/NHF/tests/test_1");
#define cin fin
#endif // DEBUG
......@@ -45,12 +45,14 @@ int main()
case '+':
try
{
cout<<"Adding process of name '"<<request.name<<"' and size of blocks "<<request.block_size<<".\n";
procs.add(new proc_test(request.name,process(mem),request.block_size)); break;
cout<<"Adding process of name '"<<request.name<<"' and of size "<<request.block_size<<".\n";
procs.add(new proc_test(request.name,process(mem),request.block_size));
break;
}
catch(domain_error& err)
{
cerr<<err.what()<<" "<<"A(z) '"<<request.name<<"'processz beszúrása meghiúsult."<<endl;
break;
}
case '-':
cout<<"Killing process of name '"<<request.name<<"'.\n";
......@@ -68,7 +70,6 @@ int main()
{
cerr<<err<<endl;
}
#ifdef DEBUG
fin.close();
#endif // DEBUG
......
......@@ -68,7 +68,7 @@ void heap::free(const memnum pid)
throw (invalid_pid("A hivatkozott blokk már üres."));
else if(blocks[pid].filled && blocks[pid].block_size==0)
throw (invalid_pid("Ezen a címen nem kezdődik memóriablokk"));
memnum next_block_idx=pid+blocks[pid].block_size;
memnum next_block_idx=pid+blocks[pid].block_size-1;
for(memnum i=pid+1; i<next_block_idx; i++)
blocks[i].reset();
/*
......
......@@ -8,6 +8,7 @@ void test_container::kill(const std::string& name)
{
k=list_head;
list_head=list_head->next;
k->kill();
delete k;
return;
}
......@@ -17,6 +18,7 @@ void test_container::kill(const std::string& name)
if(k==NULL)
throw (std::invalid_argument("Érvénytelen processnév"));
i->next=k->next;
k->kill();
delete k;
}
......
100
+ pidgin 10
+ awesome 5
+ i3 1
#
- awesome
#
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment