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));