Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [C++] aiutatemi a capire

    dato questo codice

    codice:
    int fun(int x);
    int fun(int x){
    printf ("Hai vinto!!!");
    }
    int main(int argc,char **argv[]){
    printf ("%s %p","La funzione fun è memorizzata in : ",fun);
    printf ("\n");
    
    }
    lo eseguo e da...

    codice:
    federico@crash-overflow:~$ ./ttt
    La funzione fun è memorizzata in :  0x80483a4
    federico@crash-overflow:~$ ./ttt
    La funzione fun è memorizzata in :  0x80483a4
    federico@crash-overflow:~$
    perchè se faccio cosi :

    codice:
    int main(){
    __asm ("call 0x80483a4");
    }
    mi da:

    Segmentation fault (core dumped)



    forse perche non è piu allocata la funzione??? come risolvo ?

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    A parte il fatto che la funzione foo restituisce un int e quindi va terminata con un

    return 0

    non ho capito una cosa ...

    Nella prova con la chiamata assembler, la chiamata deve essere

    __asm call fun

    e ovviamente la funzione deve essere nel sorgente, altrimenti come ci arriva in memoria?

    P.S. Fai attenzione ai titoli, al regolamento ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.