Structs
Struct Pointers
A pointer to a struct lets a function update the original grouped value.
Struct Pointers
struct_pointers.c
#include <stdio.h>
struct Point {
int x;
int y;
};
void moveRight(struct Point *point, int delta) {
point->x = point->x + delta;
}
int main(void) {
int delta = ;
struct Point point = {3, 4};
moveRight(&point, delta);
printf("x=%d y=%d\n", point.x, point.y);
return 0;
}
#include <stdio.h>
struct Point {
int x;
int y;
};
void moveRight(struct Point *point, int delta) {
point->x = point->x + delta;
}
int main(void) {
int delta = ;
struct Point point = {3, 4};
moveRight(&point, delta);
printf("x=%d y=%d\n", point.x, point.y);
return 0;
}
#include <stdio.h>
struct Point {
int x;
int y;
};
void moveRight(struct Point *point, int delta) {
point->x = point->x + delta;
}
int main(void) {
int delta = ;
struct Point point = {3, 4};
moveRight(&point, delta);
printf("x=%d y=%d\n", point.x, point.y);
return 0;
}
arrow operator
`point->x` means the `x` field of the struct pointed to by `point`.
update original
Passing a pointer lets the function write back into the caller's struct.