How do I declare a pointer to a character array in C?
I guess I'll give this answer in parts:
Here's a pointer to an array of char
s (I assumed a 10-element array):
char (*x)[10];
Let's break it down from the basics:
x
is a pointer:
*x
to an array:
(*x)[10]
of char
s:
char (*x)[10]
However, most of the time you don't really want a pointer to an array, you want a pointer to the first element of an array. In that case:
char a[10];
char *x = a;
char *y = &a[0];
Either x
or y
are what you're looking for, and are equivalent.
Tip: Learn about cdecl to make these problems easier on yourself.