Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: anonimo12121 en 19 Febrero 2011, 13:15 pm



Título: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: anonimo12121 en 19 Febrero 2011, 13:15 pm
Código:
int fu1(int n){
return 0;
}

pues le paso cout << fu1(4) ;

y el programa se cierra no se le puede pasar funciones a cout? para que muestre el valor devuelto?


los return no pueden devolver una direccion de memoria?? como haría para almacenar la direccion en un int? no el valor si no la direccion


Título: Re: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: Riki_89D en 19 Febrero 2011, 13:38 pm
Creo que deberias usar la funcion printf en vez de cout

debes incluir la cabecera stdio.h

printf("%d",fu1(4));

prueba aver,saludos


Título: Re: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: _*p en 19 Febrero 2011, 13:40 pm
Hola xafirot, compilado con g++ funciona sin problemas sólo dando el warning al retorno de la dirección...


Código
  1. #include <iostream>
  2.  
  3. char *foo( void );
  4. int foo2( void );
  5. int *dir( void );
  6.  
  7. int main()
  8. {
  9. std::cout << "foo:";
  10. std::cout << foo() << std::endl;
  11. std::cout << "foo2:";
  12. std::cout << foo2() << std::endl;
  13. std::cout << "dir:";
  14. std::cout << dir() << std::endl;
  15. }
  16.  
  17. char *foo( void )
  18. {
  19. return "HOLA MUNDO";
  20. }
  21.  
  22. int foo2( void )
  23. {
  24. return 0;
  25. }
  26.  
  27. int *dir( void )
  28. {
  29. int x = 10;
  30. std::cout << "LA DIRECCION DE x es:" << &x << std::endl;
  31. return &x;
  32. }
Código:
facu@linux:~/Escritorio$ ./a.out 
foo:HOLA MUNDO
foo2:0
dir:LA DIRECCION DE x es:0xbfe2587c
0xbfe2587c


Título: Re: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: anonimo12121 en 19 Febrero 2011, 13:48 pm
Vale sera windbugs7.

no me a quedado claro una cosa...

imaginaros que tengo una funcion:
int funcion(int x);
int m;

sabiendo que &m es la direccion de memoria de m , como se hace para la funcion?

ahora llevo esto.
 
Código:
#include <iostream>
using namespace std;
int fu1(int n){
    return n;
};
int fu2(int *n){
    return 0;
};
int main(int argc,char *argv[]){
    int m=15;
    int *p;
    *p=17; //el puntero obtiene el valor de toda la array
    p=&m;
    //p=&m[2]; apunta a la direccion de memoria
    cout << "\n  &p:\t "<<&p;
    cout << "\n  *p:\t "<<*p;
    cout << "\n  p:\t "<<p;
    cout << "\n  m:\t "<<m;
    cout << "\n  &m:\t "<<&m;
    cout << "\n____________________________";
    *p=16;
    cout << "\n  &p:\t "<<&p;
    cout << "\n  *p:\t "<<*p;
    cout << "\n  p:\t "<<p;
    cout << "\n  m:\t "<<m;
    cout << "\n  &m:\t "<<&m;
    cout << "\n____________________________";
    m=20;
    cout << "\n  &p:\t "<<&p;
    cout << "\n  *p:\t "<<*p;
    cout << "\n  p:\t "<<p;
    cout << "\n  m:\t "<<m;
    cout << "\n  &m:\t "<<&m;
    cout << "\n____________________________";
   
   
    cin.get();
    return 0;
}


Título: Re: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: _*p en 19 Febrero 2011, 13:55 pm
No entiendo esta pregunta:


Citar
sabiendo que &m es la direccion de memoria de m , como se hace para la funcion?


¿Quieres saber como devolver la dirección de x con "funcion"? o ¿quieres saber la dirección de la funcion?


Título: Re: [?][c++]cout << fu1(5); se cierra el programa
Publicado por: anonimo12121 en 19 Febrero 2011, 14:01 pm
la direccion de la funcion