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

Por qué se modifica mi string si no uso paso por referencia

Estas en el tema de Por qué se modifica mi string si no uso paso por referencia en el foro de C/C++ en Foros del Web. En C ... Por que susede esto si NO estoy usando paso por referencia... sino paso por valor? escribo "hola" entro a la funcion... escribo ...
  #1 (permalink)  
Antiguo 05/09/2012, 20:16
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 14 años, 8 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.
  #2 (permalink)  
Antiguo 05/09/2012, 20:32
Avatar de Instru  
Fecha de Ingreso: noviembre-2002
Ubicación: Mexico
Mensajes: 2.751
Antigüedad: 21 años, 4 meses
Puntos: 52
Respuesta: Por qué se modifica mi string si no uso paso por referencia

En realidad al pasar un arreglo sin tamaño, haces el paso por referencia. Intenta ponerle un tamaño fijo y veras.

Te recomiendo que veas las FAQs, se habla mucho de esto.

Saludos
  #3 (permalink)  
Antiguo 05/09/2012, 20:52
 
Fecha de Ingreso: julio-2009
Mensajes: 36
Antigüedad: 14 años, 8 meses
Puntos: 0
Respuesta: Por qué se modifica mi string si no uso paso por referencia

ok gracias... Me a funcionado perfecto en especial las FAQ.

Última edición por m4rc05; 07/09/2012 a las 03:48

Etiquetas: referencia, string
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 03:03.