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

Cita:
Iniciado por cesar_casla Ver Mensaje
Hola! el problema esta aca:

x que lo declaras como puntero a puntero???


Saludos
Porque quiero que sea un
mi_structura * vector[].....
entences si hago esto
vector[i]->nombre ... sea correcto...

pero si pongo
mi_structura *vector; .... solo tengo mi structura vector y tendria que hacer
vector[i].nombre .... y yo quiero usar la flechita :3 ->

...
Aunque haciendo lo que tu me recomiendas tuve en avance :| importante GRACIAS!!!!!
...
alguien me puede explicar a mas detalles el puntero a punteros...
Bueno este es el cambio que le e echo y bueno... funciona, pero no es lo que quería, lo ideal es usar -> pero creo que me falta estudiar más.
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;
  6. }nombre_s;
  7.  
  8. void generar_nombre(char nombre[5]){ //L#LL .... L=letra... #numero
  9. int i;
  10.     for(i=0;i<5;i++){
  11.         if(i==1) nombre[i]=(rand()%10)+48; //del 48 al 57 caracteres del 0 al 9 en ASCII
  12.         else if(i==4) nombre[i]='\0'; // ^^
  13.         else nombre[i]=(rand()%24)+66; //del 65 al 90 caracteres mayusculas de A a Z en ASCII (97 a 122 minusculas)
  14.     }
  15. //printf("\n%s\n",nombre);
  16. }
  17.  
  18.  
  19. int main(){
  20. int i;
  21. srand(time(0));
  22. //nombre_s vector[10];
  23. nombre_s *vector=NULL;
  24. vector=(nombre_s*)malloc(sizeof(nombre_s));
  25. if(!vector) return -1;
  26. for(i=0;i<10;i++){
  27. vector[i].nombre=(char*)malloc(sizeof(char)*5);
  28. generar_nombre(vector[i].nombre);
  29. printf("\n%s\n",vector[i].nombre);
  30. printf("ok\n");
  31. }
  32. return 0;
  33. }

Última edición por m4rc05; 23/09/2012 a las 09:56