Re: Floating Point Issue

From: Trond Myklebust
Date: Thu Sep 27 2007 - 14:25:28 EST


On Thu, 2007-09-27 at 12:41 +0100, mahamuni ashish wrote:
> I have small code....
>
> #include <stdio.h>
> #include <string.h>
>
> int main()
> {
> float f= 1256.35;
> char ch[4];
>
> printf("\n1. f : %f",f);
> memset(ch,'\0',strlen(ch) );
> printf("\n2. f : %f",f);
> return 0;
> }
>
> Expected output is
> 1. f : 1256.35
> 2. f : 1256.35
>
> But I am getting the output
> (on windows)
> 1. f : 1256.35
> 2. f : 0.000000
>
> (on Linux)
> 1. f : 1256.35
> segmentation fault
>
> why?

'cos 'strlen(ch)' isn't defined until you've initialised ch. If you swap
that line out with 'memset(ch, '\0', sizeof(ch))' then it will work.

Not a kernel bug, and hence not appropriate material for this list.

Trond

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/