9.6  Dvojrozmerné pole

9.6.2  Pointer na pointer

Tento spôsob je zložitejší, ale umožňuje vytvoriť dynamicky pole s ľubovoľným počtom riadkov a každý riadok môže mať dokonca ľubovoľný počet stĺpcov.


int **b; /* b je pointer na pointer na int */

Na to, aby sme vytvorili dvojrozmerné pole typu 2x3 musíme urobiť dva kroky:

  1. Alokujeme dva pointery na riadky:

    b = (int**)malloc(2*sizeof(int*));

    b[0], b[1] sú pointery na typ int, zatiaľ neukazujú nanič užitočné

  2. Alokujeme pamäť pre jednotlivé riadky:

    b[0] = (int*)malloc(3*sizeof(int));
    b[1] = (int*)malloc(3*sizeof(int));