Eräs tapa käsitellä useampiulotteisia taulukoita on määritellä ensin rivityyppi ja sitten 1- ulotteinen taulukko näitä rivityyppejä:
#include <stdio.h> #define SARAKKEITA 3 typedef double Rivi_tyyppi[SARAKKEITA]; double alkioiden_summa(Rivi_tyyppi *mat, int riveja) { int i,j; double summa=0; for (i=0; i<riveja; i++) for (j=0; j<SARAKKEITA; j++) summa +=mat[i][j]; return summa; } int main(void) { double s2,s3; Rivi_tyyppi mat2[2] = { {1,2,3},{4,5,6} }, mat3[3] = { {1,0,0},{0,1,0},{0,0,1} }; s2 = alkioiden_summa(mat2,2); s3 = alkioiden_summa(mat3,3); printf("Summat on %5.2lf ja %5.2lf\n",s2,s3); return 0; }
Tosiasiassa tällä ei ole mitään eroa edelliseen vastaavaan ohjelmamalliin verrattuna, tämä ehkä vain paremmin kuvastaa sitä, mihin matriisin nimi on osoitin.