Search code examples
cansi-c

What is the difference between -> and dot


In a C program, when i define a struct.

under which circumstances would i use "->" and under which "." ?

for example

typedef struct foo foo;

struct foo{

  double bar;
  double bar2;
}

foo barbar;

when would I use barbar.bar and when would i use barbar->bar ?


Solution

  • Left of -> should be pointer type, while normal variables/instances for ..

    • If you have a struct foo myFoo, you should use myFoo. or (&myFoo)->.
    • If you have a struct foo *myFoo, you should use myFoo-> or (*myFoo)..