Foros del Web » Programación para mayores de 30 ;) » C/C++ »

[Problema] Pasar apuntador a apuntador char por referencia

Estas en el tema de [Problema] Pasar apuntador a apuntador char por referencia en el foro de C/C++ en Foros del Web. Saludos a todos. Bueno pues lo que estoy intentando hacer es pasar un apuntador a apuntador tipo char a una función por referencia y dentro ...
  #1 (permalink)  
Antiguo 21/09/2011, 19:05
 
Fecha de Ingreso: septiembre-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Pregunta [Problema] Pasar apuntador a apuntador char por referencia

Saludos a todos.

Bueno pues lo que estoy intentando hacer es pasar un apuntador a apuntador tipo char a una función por referencia y dentro de la función asignarle memoria para luego guardar cadenas.

He intentado esto pero creo que solo asigna memoria al primer elemento (0) :

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void prueba(char ***param);
  5.  
  6. int main()
  7. {
  8.  
  9.     char **b;
  10.  
  11.     prueba(&b);
  12.         printf("%s %s %s %s", b[0], b[1], b[2], b[3]);
  13.     getchar();
  14.  
  15.     return 0;
  16. }
  17.  
  18. void prueba(char ***param)
  19. {
  20.     *param = (char**)malloc(sizeof(char**) * 4);
  21.     *param[0] = "Hola";
  22.     *param[1] = "a todo";
  23.     *param[2] = "el ";
  24.     *param[3] = "mundo";
  25. }
  #2 (permalink)  
Antiguo 21/09/2011, 19:44
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 7 meses
Puntos: 228
Respuesta: [Problema] Pasar apuntador a apuntador char por referencia

Tu error esta en un problema de precedencia. Esta instruccion equivale a:
*param[0] --> *(param[0])
Pero no es eso lo que buscas, asi que necesariamente tienes que usar los parentesis.

(*param)[0]

Código C:
Ver original
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void prueba(char ***param);
  5.  
  6. int main()
  7. {
  8.  
  9.     char **b;
  10.  
  11.     prueba(&b);
  12.         printf("%s %s %s %s", b[0], b[1], b[2], b[3]);
  13.  
  14.     return 0;
  15. }
  16.  
  17. void prueba(char ***param)
  18. {
  19.     *param = (char**)malloc(sizeof(char*) * 4);
  20.     (*param)[0] = "Hola";
  21.     (*param)[1] = "a todo";
  22.     (*param)[2] = "el ";
  23.     (*param)[3] = "mundo";
  24. }

Saludos
  #3 (permalink)  
Antiguo 22/09/2011, 13:14
 
Fecha de Ingreso: septiembre-2011
Mensajes: 2
Antigüedad: 13 años, 2 meses
Puntos: 0
Respuesta: [Problema] Pasar apuntador a apuntador char por referencia

ohh pequeño error mio.
Muchas gracias amigo ;)

Etiquetas: apuntadores
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:58.