0
リンクリストに最適なメモリ管理に問題があります。私はリンクされたリストを作成し、最初の要素を追加しますが、後に何も追加しません。基本的に私のelseステートメントは避けています。もし誰かが私にそれをする方法の概念を与えることができますか、または私が何か悪いことをしている場合、あなたが私に知らせてくれれば素晴らしいでしょう!どのようにリンクされたリストに追加して最適な管理をしたり、何かを削除することはできますか?
unsigned int MaxMem = 400000000;
struct PCB
{
struct PCB *next;
struct PCB *prev;
int PID;
unsigned int PrSize;
int best;
unsigned int Begin;
unsigned int End;
}*node = NULL, *first = NULL, *node1 = NULL, *node2 = NULL;
class linked
{
public:
void Mem_begin(PCB a)
{
PCB *add = new PCB;
struct PCB *save;
int bestfit = -1;
//add->End = MaxMem;
add->Begin = a.PrSize;
add->next = NULL;
if((first == NULL) && (bestfit1 == -1))
{
bestfit = a.ProcessID;
a.best = bestfit;
add->prev = NULL;
first = add;
cout << first->prev << " - " << first->Begin << " Process " << bestfit << endl;
}
else
{
save = first;
while(save->prev != NULL)
{
bestfit = a.PID;
a.best = bestfit;
save = save->next;
save->next = add;
add->prev = save;
cout << " i did it" << endl;
}
}
}
void display(PCB a) {
node = first;
while(node != NULL)
{
cout << node->prev << " - " << node->Begin << " Process " << a.best << endl;
node = node->next;
}
}
};
int main()
{
PCB test;
linked try;
while(true)
{
cout << "What is the PID?" << endl;
cin >> test.PID;
cout << "How much memory space?" << endl;
cin >> test.PrSize;
try.Mem_begin(test);
}
}
std :: listを使用してコードを記述し、テストし、動作することを確認します。次に、必要に応じて、独自のリスト実装を使用するように書き直します。私は教師や学生、専門家のように多くの人々が自分のリストクラスを書くことが良い考えだと思うのはなぜか分かりません。 –
でも、メモリを最適にしようとしていますが、リストの置き換えには制限があります – darkflames363