Afficher un message
Vieux 18/10/2007, 07h07   #3
¬a\\/b
Aucun Avatar
 
Messages: n/a
Hébergeur:
Par défaut Re: Bug/Gross InEfficiency in HeathField's fgetline program

In data Wed, 17 Oct 2007 17:00:13 +0200, ¬a\/b scrisse:

> /* test: if n bytes starting at s
> // overlaps n bytes starting at t
> */
>/* assume a pointer has the same size of an int and one unsigned */
>/* return 1 if error or overlap 0 otherwise */
>int mem_overlap123(char* s, int n, char* t, int m)
>{if(s==0|| t==0 || n<0 || m<0) return 0;

^^^^^^^^^^^^^

return 1

> /* no array can have the address 0
> if( ((int)s)>=0 &&((int)(s+n-1))<= 0) return 1;


> if( ((int)t)>=0 &&((int)(t+n-1))<= 0) return 1;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

if( ((int)t)>=0 &&((int)(t+m-1))<= 0) return 1;

> if( ((int)s)<=0 &&((int)(s+n-1))>= 0) return 1;
> if( ((int)t)<=0 &&((int)(t+n-1))>= 0) return 1;

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

if( ((int)t)<=0 &&((int)(t+m-1))>= 0) return 1;

> /* s----- t------ || t----- s------*/
> if( (unsigned)(s+n-1) < (unsigned) t) return 0;
> if( (unsigned)(t+m-1) < (unsigned) s) return 0;
> return 1;
>}
>
>not tested
>how many errors do you see?


  Réponse avec citation
 
Page generated in 0,05681 seconds with 9 queries