elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Tutorial básico de Quickjs


  Mostrar Mensajes
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 37
151  Programación / Programación C/C++ / Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas) en: 30 Junio 2016, 15:34 pm
Hola, crack81.
Gracias por el aporte.

Saludos.
152  Programación / Programación C/C++ / Re: Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas) en: 29 Junio 2016, 21:14 pm
Hola, Alberto.
Estoy estudiando lista enlazada simple y como el libro está basado en el estudio de apuntadores
todo está hecho con punteros por eso la intriga. -

Muchas gracias y saludos.
153  Programación / Programación C/C++ / Trabajar los campos de una estructura con o sin punteros (ventajas/desventajas) en: 29 Junio 2016, 20:57 pm
Hola, que tengan un muy buen día. -
Tengo una duda con los miembros de las estructuras y es saber si hay alguna diferencia en declararla de una u otra manera, alguna de las 2 ofrece alguna ventaja, es conveniente hacerlo de una manera o de otra o es exactamente lo mismo, debería saber esto cuando estudiaba las cadenas, pero se nota que me lo saltee. -
Se entiende que me refiero a trabajar con o sin punteros. -

Código
  1. typedef struct{
  2. char nombre[30];
  3. char calle[30];
  4. char ciudad[30];
  5. size_t edad;
  6. }_contacto;

Código
  1. typedef struct{
  2. char *nombre;
  3. char *calle;
  4. char *ciudad;
  5. size_t edad;
  6. }_contacto;
  7.  

Saludos.
154  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 22 Junio 2016, 14:56 pm
Muy bien maestro funciona a la perfección, por si alguien quiere correr tu código como Ej. deberías agregarle el prototipo. -

Muchas gracias por tu tiempo, Saludos.
155  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 22 Junio 2016, 14:28 pm
Hola, buen día para todos.
Como se nota en el código pude efectuar un avance pero me falta algo importante y es que no logro retomar la dirección de memoria a main del puntero frases como lo sugería Alberto.
Citar
La otra es que debes de retornat el valor del apuntador de fracea ya que si realloc cambia la posición de memoria de fraces dentro de una de las funciones la funcion main no se va a enterar y va a tener una copia antigua del apuntador.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void ingreso( char** );
  5.  
  6. int main( void ){
  7. char **frases=NULL;
  8.  
  9. ingreso( frases );
  10.  
  11. return 0;
  12. }
  13.  
  14. void ingreso( char** frases ){
  15. size_t i=0;
  16.  
  17. while(i < 5){
  18. i++;
  19. frases = (char**)realloc( frases, i * sizeof(char*) );
  20. frases[i-1] = calloc(20,1);
  21. printf( "\n Ingrese frase....:" );
  22. fgets( frases[i-1], 20, stdin );
  23. }
  24. i=0;
  25. while(i < 5){
  26. printf( "\n Frases Ingresadas....: %s", frases[i] );
  27. free(frases[i]);
  28. i++;
  29. }
  30. }

PD: En definitiva, lo que me falta es poder imprimir los datos ingresados desde main y no desde la función ingreso.-

Espero puedan ayudarme con esto también.
Saludos.  
156  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 21 Junio 2016, 17:33 pm
Citar
el contenido que esta siendo apuntado es un vector de apuntadores.
Ya había leído esto en alguna parte y creo que es la clave para entender los punteros dobles, en cuanto a
la solución que escribiste no me funciona, sigue sin compilar.-
Saludos.
157  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 21 Junio 2016, 16:03 pm
Hola, que tengan un muy buen día. -
Continuo con mis dudas pero ante quiero efectuar una aclaración, si consideran que esto de preguntar y preguntar, y no recurrir a un manual a buscar por mí mismo y piensan que eso es lo que debo hacer, todo ben, yo tengo mi criterio formado del porqué continuamente recurro a Uds. para evacuar mis dudas, en definitiva, si este post no tuviera respuesta lo entendería perfectamente y si me pegaran una bofetada psicológica también. -
Dicho esto pasa a consultarles sobre mis dudas.
Intento pasar el ingreso de los datos a una función y tengo (aparentemente) un solo error y esta en la siguiente linea. - 
Código
  1. ptrFrases = ingreso( frases );
Citar
ayp.c:10:2: error: invalid operands to binary & (have ‘int’ and ‘char **’)
Y la pregunta del millón, porque debo utilizar doble apuntador, tengo claro que lo que contiene la variable apuntador es una dirección de memoria y que un doble apuntador contiene la dirección de memoria de otro puntero. -

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. char ingreso( char **frases );
  5.  
  6. int main( void ){
  7. char **frases=NULL, **ptrFrases=NULL;
  8. size_t i = 0
  9.  
  10. ptrFrases = ingreso( frases );
  11.  
  12. while(i < 5){
  13. printf( "\n Frases Ingresadas....: %s", ptrFrases[i] );
  14. free(frases[i]);
  15. i++;
  16. }
  17.  
  18. return 0;
  19. }
  20.  
  21.  
  22. char ingreso( char **frases ){
  23. size_t i=0;
  24.  
  25. while(i < 5){
  26. i++;
  27. frases = (char**)realloc( frases, i * sizeof(char*) );
  28. frases[i-1] = calloc(20,1);
  29. printf( "\n Ingrese frase....:" );
  30. fgets( frases[i-1], 20, stdin );
  31. }
  32.  
  33. return **frases;
  34. }
Los dobles punteros son lo que no puedo interpretar, por lo menos en este caso. -
Saludos.
158  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 21 Junio 2016, 02:04 am
Hola.
Bueno al fin en este día aprendí más de lo esperado, con la primer respuesta pensé que no podría nunca explicar mis dudas, pero todo se fue encaminando, muchas gracias a todos los que me ayudaron en este post.
Espero que ahora este aceptable y me quiero ver encajando todo esto en el otro programa, espero lograrlo.

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main( void ){
  5. char **frases=NULL;
  6. size_t i=0;
  7.  
  8. while(i < 5){
  9. i++;
  10. frases = (char**)realloc( frases, i * sizeof(char*) );
  11. frases[i-1] = calloc(20,1);
  12. printf( "\n Ingrese frase....:" );
  13. fgets( frases[i-1], 20, stdin );
  14. }
  15. i=0;
  16. while(i < 5){
  17. printf( "\n Frases Ingresadas....: %s", frases[i] );
  18. free(frases[i]);
  19. i++;
  20. }
  21.  
  22. return 0;
  23. }

Saludos.    
159  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 20 Junio 2016, 23:25 pm
Al fin logre que funcione, dejo el código porque además del error que me solucionaste tenía 2 más. -
El incremento de la variable i va al comienzo del bucle y no al final, creo que es porque en la primer iteración valiendo cero i no reservaría memoria. - 
Y el segundo lo producía porque no igualaba a NULL el puntero frases. -

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main( void ){
  5. char **frases=NULL, *tmp=NULL;
  6. size_t i=0;
  7.  
  8. while(i < 5){
  9. i++;
  10. frases = (char**)realloc( frases, i * sizeof(char*) );
  11. tmp = calloc(20,1);
  12. printf( "\n Ingrese frase....:" );
  13. fgets( tmp, 20, stdin );
  14. frases[i-1] = tmp;
  15. }
  16. i=0;
  17. while(i < 5){
  18. printf( "\n Frases Ingresadas....: %s", frases[i] );
  19. i++;
  20. }
  21.  
  22. free(frases);
  23.  
  24. return 0;
  25. }
  26.  

Saludos.
160  Programación / Programación C/C++ / Re: Pasar vector de puntero a char a las funciones[C] en: 20 Junio 2016, 21:46 pm
Hola.
Creo que nunca me costo tanto entender un tema como en este caso, tan solo para intentar avanzar me podrían decir que tengo que modificar para que no me del siguiente error.

Citar
ayp.c:11:10: warning: assignment from incompatible pointer type [enabled by default]
frases = (char*)realloc( frases, i * sizeof(char*) );

Código
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main( void ){
  5. char **frases, *tmp;
  6. size_t i=0;
  7.  
  8. while(i < 5){
  9. frases = (char*)realloc( frases, i * sizeof(char*) );
  10. tmp = calloc(20,1);
  11. printf( "\n Ingrese frase....:" );
  12. fgets( tmp, 20, stdin );
  13. frases[i] = tmp;
  14. i++;
  15. }
  16. i=0;
  17. while(i < 5){
  18. printf( "\n Frases Ingresadas....: %s", frases[i] );
  19. i++;
  20. }
  21.  
  22. return 0;
  23. }
No tendrá mucha relación con el programa que quiero hacer pero trate de hacerlo sencillo para poder entenderlo. -


Saludos.
Páginas: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 [16] 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 ... 37
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines