De toute facon, il n'y a qu'a regarder le prototype de stcat:
char *strcat( char *strDestination, const char *strSource );
Ou tu vois que les char* sont interdits, il n'y a que ca.
De toute facon, si tu fais char buffer[255].
buffer est considéré comme un char*. Ton compilo sait que seulement 255 octets lui sont alloués et te donnera au moins un warning si tu dépasse, mais ton pross lui n'en sait rien quand tu l'executes. buffer reste un pointeur de type char pour lequel on a alloué 255 octets de mémoire.
Faire char buffer[255] est la meme chose que char *buffer; buffer=malloc(255*sizeof(char));
Enfin, buffer représentera la meme chose. Apres faudrait voir comment le compilo gere le buffer[255]. Ne sachant pas je n'avancerait pas d'hypothese, mais ce pourrait etre intéressant de regarder.
Vive le C
Tchao
Savon