Haciendo uso del puntero de cadena para imprimir las combinaciones de caracteres enteros

Tengo la función C que toma el puntero de cadena como parámetro. Esta función retorna como símbolo al que apunta el puntero. Me gustaría generar = muchos símbolos dependiendo de los requisitos. Supongamos que tengo cuatro puertas en una casa. Me gustaría dar diferentes nombres a diferentes puertas como d1,d2,d3.... En este caso, me gustaría crear un puntero de cadena que apunte tanto a la cadena como al entero para que pueda obtener los símbolos que difieren solo en valores numéricos. Esto me ayuda a categorizar los símbolos viendo el valor de la cadena. Me gustaría saber cómo puedo declarar un puntero de cadena para poder crear un símbolo que mencioné anteriormente.

[EDITAR]

Intentaré dejarlo claro.

Tengo matriz de dos punteros

 const char *test[] ={"a","12345"} 

Me gustaría hacer el puntero para apuntar a y 1 y a y 2 y … así sucesivamente. ¿Hay algún método para hacerlo?

Dado que la pregunta es tan ambigua, aquí hay otra:

 #include  int main(int argc, char *argv) { const char *test[] = { "a", "12345" }; int i, j; for (i = 0; test[0][i] != 0; ++i) for (j = 0; test[1][j] != 0; ++j) printf("%c%c\n", test[0][i], test[1][j]); return 0; } 

Salida:

 a1 a2 a3 a4 a5 

No está claro, pero creo que quieres poder acceder a los personajes individuales. ¿Es esto lo que estás buscando?

 #include  int main() { int i; char* name[] = {"a1","b2","c3"}; for(i=0;i<3;i++) printf("%s = %c %c\n",name[i],name[i][0],name[i][1]); } 

Salida:

 a1 = a 1 b2 = b 2 c3 = c 3 

Una cadena es un puntero a los caracteres, por lo tanto, no puede apuntar a números enteros. Puedes hacer un trabajo de conversión, pero eso no parece adecuado para tu problema. Lo que necesitas es una estructura.

Implementando tu ejemplo:

 struct Doors { int num; char sym; } d1, d2, d3; d1.sym = 'd'; d1.num = 1; d2.sym = 'd'; d2.num = 2; d3.sym = 'd'; d3.num = 3; 

EDITAR :

Mi solución modificada como una implementación de su segundo ejemplo:

 struct Doors { int * nums; const char * sym; } d; int n = 3; // Amount of doors. d.nums = (int *) malloc(n * sizeof(int)); // Memory for int array of n elements. if (d.nums == 0) { /* Memory could not be allocated. */ } else { d.sym = "d"; for (int i = 0; i < n; ++i) { d.nums[i] = i + 1; } // d -> { "d", [ 1, 2, 3 ] } free(d.nums); // Free the allocated memory. }