Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/09/2012, 20:16
m4rc05
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 14 años, 9 meses
Puntos: 0
Pregunta Por qué se modifica mi string si no uso paso por referencia

En C ...
Por que susede esto si NO estoy usando paso por referencia... sino paso por valor?
escribo "hola"
entro a la funcion... escribo "bye" (en otra variable, creo yo) y imprimo

Código C:
Ver original
  1. #include <stdio.h>
  2. void funcion(char car2[]);
  3. main(){
  4. char car[100];
  5. gets(car); //escribo: "hola"
  6. funcion(car);
  7. printf("caracteres: %s",car); //espero leer "hola" y leo bye :|
  8. }
  9.  
  10. void funcion(char car2[]){
  11. printf("funcion\n");
  12. gets(car2); //escribo: "bye"
  13.  
  14. }

Ademas....
si uso paso por referencia se me congela la consola D:

Al intentarlo por referencia se me congela la pantalla en el gets de la función...

Código C:
Ver original
  1. #include <stdio.h>
  2. void funcion(char *car2[]);
  3. main(){
  4. char car[100];
  5. gets(car);  //escribo: "hola"
  6. funcion(&car);
  7. printf("caracteres: %s",car); //espero leer "bye" (se congela antes de llegar a esta parte)
  8. getchar();                  
  9. }
  10.  
  11. void funcion(char *car2[]){
  12. printf("funcion\n");
  13. gets(*car2); //escribo: "bye" (y luego se congela el programa)
  14. }

Gracias.