Difference between "char *arr" and "char arr[]"
Frank [Who me?] Kuan
kuan at iris.ucdavis.edu
Sat Sep 22 13:23:35 AEST 1990
In file "a.c", I declare:
char targ[128];
In file "b.c" I do:
extern char *targ;
Result: I got massive errors. When I source debugged it, it told me
that the char pointer "targ" was 0x000000.
By chance, I tried redeclaring it as "extern char targ[]" and
the problem was fixed.
Now, I always thought that "targ[]" and "char *targ" were equivalent.
I have several places in my program where I use those two notations
interchangeably, and this was the first time I've ever had a problem
with it.
Could a C wizard explain to me what I'm doing wrong and what the
correct practice is so I don't run into these horrible bugs again?
Thanks in advance.
- f
More information about the Comp.lang.c
mailing list