Çok boyutlu dizilere dinamik bellek tahsisi yapmak için işaretçi dizilerini kullanabiliriz. Bu yöntemde her dizi için tahsis edilen edilen bellek ve bellek boşaltma işlemleri bir döngü ile yapılır. Aşağıdaki program iki boyutlu bir karakter dizisine bellek tahsisi yaparak işlem yapar.
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int main()
{
char *pdizi[3];
int id;
/* Bellek tahsisi */
for (id=0; id<3; id++) {
pdizi[id] = (char *) malloc(20 * sizeof(char));
}
/* Dizi atama */
for (id=0; id<3; id++) {
strcpy(pdizi[id], "Karakter dizisi");
}
/* Yazdırma */
for (id=0; id<3; id++) {
printf ("%s\n", pdizi[id]);
}
/* Bellek boşaltma */
for (id=0; id<3; id++) {
free(pdizi[id]);
}
return 0;
}
Yukarıdaki örnekte, program aşağıdaki satırları ekrana yazar:
Karakter dizisi Karakter dizisi Karakter dizisi