Ver Mensaje Individual
  #4 (permalink)  
Antiguo 12/10/2010, 09:29
Trovaz
 
Fecha de Ingreso: octubre-2010
Ubicación: Edo. de México
Mensajes: 94
Antigüedad: 14 años, 3 meses
Puntos: 9
Respuesta: Problema array de cadenas

bueno aqui te dejo un ejemplo que hice basdo en tu programita, veras que imprimo las direcciones de memoria para que te des una idea de como se manejan:

Código c:
Ver original
  1. #include <stdio.h>
  2. #include <string.h>
  3.  
  4. #define MAX 5
  5. #define CARACTERES 50
  6.  
  7. int main (void){
  8.   char *espacio;
  9.   char *nombreequipos[MAX];
  10.   char nombre[CARACTERES];
  11.   int cont=0;
  12.  
  13.   espacio = malloc(CARACTERES * MAX * sizeof(char));
  14.  
  15.   while(cont < MAX){
  16.     nombreequipos[cont] = espacio + CARACTERES * cont;
  17.     printf("direccion[%d]: %dh\n", cont, nombreequipos[cont]);
  18.     cont++;
  19.   }
  20.  
  21.   printf("\n\nObteniendo nombres..\n");
  22.   cont = 0;
  23.   while (cont < MAX){
  24.     printf("direccion[%d]: %dh\n", cont, nombreequipos[cont]);
  25.     bzero((char *)&nombre, sizeof(nombre));
  26.     printf( "Escribe un nombre: " );
  27.     gets(nombreequipos[cont]);
  28.     cont++;
  29.   }
  30.  
  31.   cont = 0;
  32.   while(cont < MAX ){
  33.     printf("nombre[%i]: %s\n", cont, nombreequipos[cont]);
  34.     cont ++;
  35.   }
  36.   free(espacio);
  37. }

My salida
Código:
direccion[0]: 167997448h
direccion[1]: 167997498h
direccion[2]: 167997548h
direccion[3]: 167997598h
direccion[4]: 167997648h


Obteniendo nombres..
direccion[0]: 167997448h
Escribe un nombre: Espero esto
direccion[1]: 167997498h
Escribe un nombre: te
direccion[2]: 167997548h
Escribe un nombre: haya sido
direccion[3]: 167997598h
Escribe un nombre: de mucha
direccion[4]: 167997648h
Escribe un nombre: ayuda
nombre[0]: Espero esto
nombre[1]: te
nombre[2]: haya sido
nombre[3]: de mucha
nombre[4]: ayuda