Salut. Am o eroare ciudate in test.c folosit de voi pentru a corecta tema 5, in functia check_ram.... Deci:<br><br>static void check_ram (size_t offset, size_t ppages, size_t checks)<br>{<br>&nbsp;&nbsp;&nbsp; size_t i, j;<br>&nbsp;&nbsp;&nbsp; size_t read_val;
<br>&nbsp;&nbsp;&nbsp; int exp_val;<br>&nbsp;&nbsp;&nbsp; int check = 1;<br><br>&nbsp;&nbsp;&nbsp; for (i = 0; i &lt; ppages; i++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; lseek (ram_fd, i * p_sz + offset, SEEK_SET);<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; for (j = 0; j &lt; checks; j++) {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; exp_val = (i &lt;&lt; 16) | (offset + j * 4);
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; read (ram_fd, &amp;read_val, 4);<br><br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf(&quot;exp:%d read:%d %d\n&quot;,exp_val,read_val,exp_val!=read_val);&nbsp;&nbsp;&nbsp; //!!!!!!!!!!!!!!!!!!<br><div id="mb_0">&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; <br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; if (exp_val != read_val)&nbsp; //!!!!!!!!!!!
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf(&quot;EROARE!\n&quot;); //!!!!!!!!!!!!<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; check = 0;<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* you gotta love them binary ops :-D */<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; /* check &amp;= !(exp_val ^ read_val); */
<br>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; }<br>&nbsp;&nbsp;&nbsp; }<br><br>&nbsp;&nbsp;&nbsp; test (&quot;check_ram&quot;, check);<br>}<br><br>Outputul testului este:<br><br>exp:660 read:660 1<br>EROARE!<br>exp:664 read:664 1<br>EROARE!<br>exp:668 read:668 1<br>EROARE!<br>exp:66196 read:66196 1
<br>EROARE!<br>exp:66200 read:66200 1<br>EROARE!<br>exp:66204 read:66204 1<br>EROARE!<br>exp:131732 read:131732 1<br>EROARE!<br>exp:131736 read:131736 1<br>EROARE!<br>exp:131740 read:131740 1<br>EROARE!<br>test: check_ram...................................................failed
<br><br><br>Deci, desi exp_val e 66204, read_val e tot 66204.....totusi
testul spune ca exp_val e DIFERIT de read_val..... Nu mai inteleg nimic.... Compara
ceva aiurea if-ul acela, de mie-mi pica testul desi valorile alea sunt
identice ???? <br><br>Va rog ajutati-ma, pentru ca azi e deadline-ul pentru teme,
dupa cum stii, si am verificat de 100 de ori tema si totul e ok, dar
mie-mi pica testele de check_ram, si probabil comparatia asta intre
doua valori identice pe care el le vede diferite e de vina. Multumesc!
<br><br>Ionut Ursachi<br>342CA<br><br>PS: Daca in loc de &quot;size_t read_val;&quot; pun &quot;int read_val;&quot;, testul se executa corect. Va rog sa corectati testele cu int in loc de size_t peste tot, sau sa repuneti comparatia cum era initial check&amp;=.....,pentru ca asa esueaza de fiecare data!!! (esueaza si pt size_t read_val comparat cu size_t exp_val....numai pt int read_val comparat cu int exp_val comparatia e corecta!)
<br><br></div>