Using a passed by reference struct variable in C
I have a basic pointer question. I have some code like this: Please let me know if anything is wrong in the following code:
struct abc {
int a;
int b;
};
void func2(int*); // defined elsewhere
void func1 (struct abc *p1)
{
struct abc var1 = *p1; // ======> Can I do this ?
func开发者_Python百科2(&var1.b);
func2(&p1->b); // =========> Which of these 2 is right ?
}
struct abc var1 = *p1;======> Can I do this ?
Yes, this copies the struct pointed by p1 in the local variable var1.
func2(&var1.b);func2(&p1->b);=========> Which of these 2 is right ?
Both, if func2() accepts a int* as parameter. It depends if you want func2 to modify p1->b or var1.b.
加载中,请稍侯......
精彩评论