[so] [TEMA 5] eroare in functia check_ram din test.c
Ionutz
uvinrg at gmail.com
Sun Feb 11 10:09:48 EET 2007
Salut. Am o eroare ciudate in test.c folosit de voi pentru a corecta tema 5,
in functia check_ram.... Deci:
static void check_ram (size_t offset, size_t ppages, size_t checks)
{
size_t i, j;
size_t read_val;
int exp_val;
int check = 1;
for (i = 0; i < ppages; i++) {
lseek (ram_fd, i * p_sz + offset, SEEK_SET);
for (j = 0; j < checks; j++) {
exp_val = (i << 16) | (offset + j * 4);
read (ram_fd, &read_val, 4);
printf("exp:%d read:%d
%d\n",exp_val,read_val,exp_val!=read_val); //!!!!!!!!!!!!!!!!!!
if (exp_val != read_val) //!!!!!!!!!!!
{
printf("EROARE!\n"); //!!!!!!!!!!!!
check = 0;
}
/* you gotta love them binary ops :-D */
/* check &= !(exp_val ^ read_val); */
}
}
test ("check_ram", check);
}
Outputul testului este:
exp:660 read:660 1
EROARE!
exp:664 read:664 1
EROARE!
exp:668 read:668 1
EROARE!
exp:66196 read:66196 1
EROARE!
exp:66200 read:66200 1
EROARE!
exp:66204 read:66204 1
EROARE!
exp:131732 read:131732 1
EROARE!
exp:131736 read:131736 1
EROARE!
exp:131740 read:131740 1
EROARE!
test: check_ram...................................................failed
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
????
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!
Ionut Ursachi
342CA
PS: Daca in loc de "size_t read_val;" pun "int read_val;", 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&=.....,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!)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://cursuri.cs.pub.ro/pipermail/so/attachments/20070211/f58bd0b6/attachment.htm
More information about the so
mailing list