<?xml version="1.0" encoding="koi8-r"?>
<rss version="0.91">
<channel>
    <title>OpenForum RSS: Помогите пожалуйста найти ошибку в лабе</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8192.html</link>
    <description>Делаю лабу по ОС, модель алгоритма диспетчеризации процессов SJF. Ничего сложного, просто создаётся двусвязный список и из него выбираются процессы, которым нужно меньше всего процессорного времени. Вроде код я написал, но он через раз падает. Думаю, у меня ошибки где-то в удалении. Весь день пялюсь в код а понять почему указатели начинают указывать черти куда не могу. код:&lt;br&gt;&lt;br&gt;#include &amp;lt;stdio.h&amp;gt;&lt;br&gt;#include &amp;lt;stdlib.h&amp;gt;&lt;br&gt;#include &amp;lt;math.h&amp;gt;&lt;br&gt;#include &amp;lt;windows.h&amp;gt;&lt;br&gt;&lt;br&gt;//process states&lt;br&gt;#define WAITS 2&lt;br&gt;#define RUNS 3&lt;br&gt;&lt;br&gt;//number of proc requests&lt;br&gt;#define NUM 5 //0   &lt;br&gt;&lt;br&gt;//process count&lt;br&gt;#define PROC_NUM 10&lt;br&gt;&lt;br&gt;//max cpu time&lt;br&gt;#define MAX_CT 100&lt;br&gt;&lt;br&gt;#define ushort unsigned short&lt;br&gt;#define uint unsigned int&lt;br&gt;&lt;br&gt;struct proclst&lt;br&gt; &#123;&lt;br&gt;  ushort pid;&lt;br&gt;  ushort state;&lt;br&gt;  uint cputime;&lt;br&gt; &#125;;&lt;br&gt;&lt;br&gt;struct ff&lt;br&gt;&#123;&lt;br&gt; struct proclst *proc;&lt;br&gt; struct ff *next;&lt;br&gt; struct ff *prev;&lt;br&gt;&#125;;&lt;br&gt;&lt;br&gt;struct proclst list&#091;PROC_NUM&#093;;&lt;br&gt;struct ff *start=0, *last;&lt;br&gt;&lt;br&gt;struct ff *Add2FIFO( struct ff *lst, struct proclst *pr )&lt;br&gt; &#123;&lt;br&gt;  struct ff *tmp;&lt;br&gt;&lt;br&gt;  tmp = (struc</description>

<item>
    <title>Помогите пожалуйста найти ошибку в лабе (JohnProfic)</title>
    <link>https://opennet.ru/openforum/vsluhforumID9/8192.html#1</link>
    <pubDate>Fri, 03 Apr 2009 23:43:18 GMT</pubDate>
    <description>&amp;gt;    if( nxt-&amp;gt;prev ) nxt-&amp;gt;prev-&amp;gt;next = nxt-&amp;gt;next;   //remove record&lt;br&gt;&amp;gt;     else                                          //if our record starts &lt;br&gt;&amp;gt;     &#123;    //our record is first &#091;start&#093;, so shift start position &lt;br&gt;&amp;gt;      start = nxt-&amp;gt;next; &lt;br&gt;&amp;gt;      if(start) start-&amp;gt;prev = 0;&lt;br&gt;&amp;gt;     &#125; &lt;br&gt;&lt;br&gt;Ужасный код. Это, хм, удаление должно выглядеть примерно так:&lt;br&gt;&#091;code&#093;&lt;br&gt;if (nxt-&amp;gt;prev) &#123;&lt;br&gt;nxt-&amp;gt;prev-&amp;gt;next = nxt-&amp;gt;next;&lt;br&gt;&#125;&lt;br&gt;if (nxt-&amp;gt;next) &#123;&lt;br&gt;nxt-&amp;gt;next-&amp;gt;prev = nxt-&amp;gt;prev;&lt;br&gt;&#125;&lt;br&gt;if (nxt == start) &#123;&lt;br&gt;start = nxt-&amp;gt;next;&lt;br&gt;&#125;&lt;br&gt;if (nxt == last) &#123;&lt;br&gt;last = nxt-&amp;gt;prev;&lt;br&gt;&#125;&lt;br&gt;&#091;/code&#093;&lt;br&gt;&lt;br&gt;В коде еще есть мелкие ошибки. Из того что сразу заметно: в next_proc() сравнение должно быть &amp;lt;=, а не &amp;lt;.&lt;br&gt;&lt;br&gt;А вообще есть такое замечательное средство как отладчик, который и нужно использовать для нахождения ошибок в коде.&lt;br&gt;</description>
</item>

</channel>
</rss>
