On Tue, Jul 09, 2002 at 02:28:04AM +0530, Goverthanan wrote: > hi all, > this is a very small doubt in c. > On execution the following program throws segmentation fault error. > > #include <stdio.h> > #include <string.h> > > main() > { > int n; > char *str, *str1; <---- you declare two "pointers to char", but they dont point anywhere yet (or rather, they point at some random memory location) > scanf("%s", str); <----- and now you read into them, therefore scribbling all over that memory location. > scanf("%s", str1); > scanf("%d",&n); > printf("%d\n", bcmp(str, str1, n)); > } > > Instead when the order of variable declaration is changed, program worked > fine. that was a fluke. > May i know what makes the diffenence in the order of variable > declarations. Better get a good C book on pointers and memory management. K&R's The C Programming Language is recommended. -- http://vipe.technion.ac.il/~mulix/ http://syscalltrack.sf.net/
Attachment:
pgp00000.pgp
Description: PGP signature