Bonjour cher communauté

J'essaye d'écrire un bout de code qui "m'extrait" tous les trigrammes (trois lettres consécutives) d'une (longue) liste de mots.
L'idée c'était de déclarer un tableau à 3 dimension, et que lorsqu'on rencontre par exemple la suite de caractères 'a' 'b' 'c' dans la liste on fait:
tab['a']['b']['c']++; ainsi en consultant le tableau je peux savoir que "abc" est présent 1 fois (je transforme les caractères en unsigned avant pour ne pas avoir tab[-1][][] par exemple)...
Mon problème:
Windows n'aime pas du tout int tab[256][256][256]={{{}}};, j'imagine que c'est une question de taille/mémoire?
Je débute en C, et je vois pas de solutions (j'ai réduit le tableau à tab[50][50][50] pour stocker uniquement les caractères qui m'intéressent, mais ça n'a rien changé).
Si vous avez des idées pour résoudre ce problème de mémoire, ou une meilleure façon de stocker les données (structure?, malloc?), je suis preneur!!!

merci