Velvet Star Monitor

Standout celebrity highlights with iconic style.

updates

How to work with pointer to pointer to structure in C?

Writer Olivia Zamora

I want to change member of structure under double pointer. Do you know how?

Example code

typedef struct { int member;
} Ttype;
void changeMember(Ttype **foo) { //I don`t know how to do it //maybe *foo->member = 1;
}

4 Answers

Try

(*foo)->member = 1;

You need to explicitly use the * first. Otherwise it's an attempt to dereference member.

3

Due to operator precedence, you need to put parentheses around this:

(*foo)->member = 1;

You can use a temp variable to improve readability. For example:

Ttype *temp = *foo;
temp->member = 1;

If you have control of this and allowed to use C++, the better way is to use reference. For example:

void changeMember(Ttype *&foo) { foo->member = 1;
}

maybe (*foo)->member = 1 (if it's dynamically allocated)

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy