Dynamically loop through array of structures

U

uidzer0

Hey everyone,

I apologize in advance for this novice question however I'm not having
any luck finding the answer myself.

I'm attempting to loop through an array of structures passed to a
function, however I'm not sure how to obtain the number of elements in
the array.

The structure is defined as:
typedef struct {
time_t creation_date;
int priority;
char *text;
} note;

And here's the function prototype:
void get_notes(note *notes);

How would I dynamically loop through *notes?
 
R

Richard Bos

uidzer0 said:
I'm attempting to loop through an array of structures passed to a
function, however I'm not sure how to obtain the number of elements in
the array.

You can't. You have to pass that number in to the function, use a
terminator element, or have some other way to find out. This is the same
for all arrays, whether or not they're made of structs.

Richard
 
U

uidzer0

You can't. You have to pass that number in to the function, use a
terminator element, or have some other way to find out. This is the same
for all arrays, whether or not they're made of structs.

Richard

Ahh... well that makes more sense - thanks.
 
D

David Thompson

One way is to hold the pointers to note (i.e. the note* items) in
an array terminated with a NULL. Then the function might be:
OP doesn't have an array of pointers, but one pointer to an array.
void get_notes(note *notes) {
while (*notes) {
process_one_note(*notes);
notes++;
}
}
For an array of pointer you need (modulo spacing)
void get_notes (note * * notes)
then as you have it. Or (equivalent to the compiler)
void get_notes (note * notes [] )
to emphasize the array-of-pointer-ness, but downplay the fact that
array parameters/arguments are really pointers; pick your poison.

- formerly david.thompson1 || achar(64) || worldnet.att.net
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,999
Messages
2,570,243
Members
46,836
Latest member
login dogas

Latest Threads

Top