¿Cómo haría una matriz para almacenar cadenas?

Así que estoy tratando de resolver esto con un progtwig simple:

#include  #include  #include  int main() { char a[]="lalala"; char b[]="bababa"; char c[]="nanana"; char d[3][10]; d[0][20]=*a; d[1][20]=*b; d[2][20]=*c; printf("%s -- %s -- %s", d[0], d[1], d[2]); return 0; } 

Cada vez que lo ejecuto, esto es lo que sale:

 ( -- ╡■   :A&w═l&wÉ∟@ -- l&wÉ∟@ 

Lo que estoy tratando de hacer es imprimirla lalala bababa nanana

¿Me estoy perdiendo algo obvio o necesito hacer algo más complicado para hacer una matriz para cadenas?

Trate de usar strcpy en lugar de asignarlos por desreferenciación.

La statement char a[] = "lalala"; crea una matriz de caracteres, donde el nombre a es un alias para la dirección de memoria donde se almacena el primer carácter.

Para crear una matriz de cadenas, puede crear una matriz de punteros de caracteres, cada uno de los cuales contiene la dirección de memoria de la posición inicial de una matriz de un solo carácter.

 #include  int main(void) { /* Store the starting address of each character array in an array of * character pointers */ char alpha[] = "Alpha"; /* Array of characters */ char beta[] = "Beta"; char gamma[] = "Gamma"; char *char_ptr_array[3]; /* Array of pointers to characters */ char_ptr_array[0] = &alpha[0]; char_ptr_array[1] = beta; /* This does the same thing since the array's name is an alias * for the address of the first element */ char_ptr_array[2] = gamma; printf("%s, %s, %s\n", char_ptr_array[0], char_ptr_array[1], char_ptr_array[2]); return(0); } 

También puedes hacer la tarea de esta manera, que es una abreviatura para hacer lo mismo:

 #include  int main (void) { char *alphabet[3] = { "Alpha", "Beta", "Gamma" }; printf("%s, %s, %s\n", alphabet[0], alphabet[1], alphabet[2]); return(0); } 

Para almacenar la cadena completa use la copia de cadena.

 char a[]="lalala"; char c[]="nanana"; char d[3][10]; strcpy(d[0],a); strcpy(d[1],b); strcpy(d[2],c); printf("%s -- %s -- %s", d[0], d[1], d[2]); 

Podrías usar una serie de cadenas:

 std::string test[20]; 

Y evita usar #include ; use solo #include .