Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/09/2012, 14:45
m4rc05
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 15 años, 4 meses
Puntos: 0
Pregunta Memoria dinámica, estructura con punteros, No encuentro el error.

No puedo hacer funcionar este código:
Lo que genera la funcion es un nombre que quiero almazenar en una variable de tipo estructura, y lo quiero hacer 280 veses o almenos 100

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. typedef struct nombre_s{
  5. char *nombre; //creo que el error esta en que es un puntero aqui...
  6. //se supone que tengo otras cosas en la estructura, pero les muestro lo que no
  7. // me funciona
  8. }nombre_s;
  9.  
  10. char * generar_nombre(){ //L#LL .... L=letra... #numero
  11. int i;
  12. char *nombre;
  13. nombre=malloc(sizeof(char));
  14.     for(i=0;i<5;i++){
  15.         if(i==1) nombre[i]=(rand()%10)+48; //del 48 al 57 caracteres del 0 al 9 en ASCII
  16.         else if(i==4) nombre[i]='\0'; // ^^
  17.         else nombre[i]=(rand()%24)+66; //del 65 al 90 caracteres mayusculas de A a Z en ASCII (97 a 122 minusculas)
  18.     }
  19. return nombre;
  20. }
  21.  
  22.  
  23. int main(){
  24. int i;
  25. srand(time(0));
  26. nombre_s **vector=NULL;
  27. vector[i]=malloc(sizeof(nombre_s));
  28. for(i=0;i<280;i++){
  29. //vector[i]->nombre=calloc(5,sizeof(char));
  30. vector[i]->nombre=generar_nombre(); //esto no funciona
  31. printf("%s\n",vector[i]->nombre);
  32. }
  33. return 0;
  34. }

Espero que alguien pueda ayudarme con esto...
Gracias.

Última edición por m4rc05; 22/09/2012 a las 19:55