Hola. ¿Qué simbolos dibujan esos códigos ASCII? A mí no me parecen símbolos de un tablero de ajedrez o similar ... 
No se si querrás producir algo como esto:
+---+---+---+---+
| a | b | c | d |
+---+---+---+---+
| e | f | g | h |
+---+---+---+---+
Bueno, esperando a que respondas pero si ese es el caso aquí tienes un pequeño código que hace la tarea. Por comodida, creé la función fillRow que rellena una fila dada de la matriz con los caracteres de una cadena pasada como argumento. En este caso puse 'x' como relleno de la casilla, y espacio para dejar vacía la misma. Reemplaza el símbolo de relleno por el que tú requieres. Además, puedes cambiar las constantes M y N por otros valores en caso de querer redimensionar la matriz.

No se si querrás producir algo como esto:
+---+---+---+---+
| a | b | c | d |
+---+---+---+---+
| e | f | g | h |
+---+---+---+---+
Bueno, esperando a que respondas pero si ese es el caso aquí tienes un pequeño código que hace la tarea. Por comodida, creé la función fillRow que rellena una fila dada de la matriz con los caracteres de una cadena pasada como argumento. En este caso puse 'x' como relleno de la casilla, y espacio para dejar vacía la misma. Reemplaza el símbolo de relleno por el que tú requieres. Además, puedes cambiar las constantes M y N por otros valores en caso de querer redimensionar la matriz.
Código (cpp) [Seleccionar]
#include <stdlib.h>
#include <stdio.h>
#define M 8
#define N 8
void fillRow( char **, int, const char *);
void printBoard( char ** );
int main() {
char **A;
int i;
/* Inicializa la matriz, y termina si ocurre error */
if ( ( A = (char **) malloc ( M * sizeof(char *) ) ) == NULL )
return -1;
for (i = 0; i < M; i++ )
if ( ( A[i] = (char *) malloc ( N * sizeof(char) ) ) == NULL )
return -1;
fillRow( A, 0, "xxx xx x" );
fillRow( A, 1, "x x x " );
fillRow( A, 2, "x x x x " );
fillRow( A, 3, "xxxxx " );
fillRow( A, 4, "xx " );
fillRow( A, 5, "xx xx xx" );
fillRow( A, 6, "x xxxx " );
fillRow( A, 7, "xxxxxxxx" );
/* imprimir el tablero */
printBoard( (char **)A );
return 0;
}
/* Rellena la fila i de la matriz A con los elementos del vector x */
void fillRow( char **A, int i, const char *x) {
int j;
for (j = 0; j < N; j++)
A[i][j] = x[j];
}
/* Imprime un tablero de 8x8, rellenando las casillas con los
* caracteres almacenados en la matriz A
*/
void printBoard( char **A ) {
int i, j;
char c, *s;
puts("+---+---+---+---+---+---+---+---+");
for (i = 0; i < M; i++) {
putchar('|');
for (j = 0; j < N; j++)
if ( A[i][j] != '\0' )
printf(" %c |", A[i][j]);
else
printf(" |");
puts("\n+---+---+---+---+---+---+---+---+");
}
putchar('\n');
}