TOC | Prev | Next

Modifying values in place

Sometimes a function needs to modify a value instead of returning a new one.

pointer-in-place.c

#include <stdio.h>

void triple( int *n ) {
    *n = *n * 3;
}

int main( void ) {
    int widgets = 14;
    int dongles = 37;

    int * countp;

    printf( "widgets = %d, dongles = %d\n", widgets, dongles );

    countp = &widgets;
    triple( countp );

    countp = &dongles;
    triple( countp );

    printf( "widgets = %d, dongles = %d\n", widgets, dongles );

    return 0;
}

$ pointer-in-place

widgets = 14, dongles = 37
widgets = 42, dongles = 111
TOC | Prev | Next