Visualizzazione dei risultati da 1 a 4 su 4

Discussione: [C]Segmentation Fault

  1. #1

    [C]Segmentation Fault

    Salve a tutti.
    Dunque, sono un neofita della programmazione sotto ambiente Linux (utilizzo una Mandrake 9.0).
    Come editor uso emacs.
    Nel passaggio di ambiente di sviluppo (Da Windows a Linux) mi sono accorto di avere alcune lacune per quanto riguarda la programmazione con il pinguino.
    Per essere chiari, non riesco a capire certe volte come mai un codice, anche semplice, mi restituisce un Segmentation Fault.
    Ovviamente, so che tipo di errore e' solitamente un Segmentation Fault, ad esempio quando si scrive su una parte di memoria in cui non si ha accesso o quando non vengono risolti i puntatori.
    Vi posto un semplicissimo sorgente, che ho utilizzato per capire quando cado in Segmentation Fault.

    #include <stdio.h>

    int prova (int);

    main()
    {
    int numero = 10, scelta = 0;

    printf("Premere 1 per elevare %d al quadrato.", numero);
    printf("\nInput: ");
    scanf("%d", scelta);

    if (scelta == 1)
    printf("Per valore, %d", prova(numero));

    return 0;

    }


    prova (int cifra)
    {
    return cifra * cifra;
    }


    Il programma si interrompe e mi rida' il Segmentation Fault quando come input inserisco uno ed a regola, main dovrebbe chiamare prova che a sua volta dovrebbe restituire il quadro del numero passato con una chiamata per valore.
    Attendo speranzoso consigli e delucidazioni.

    Ciao.

    P.s. ovviamente prima di postare ho passato al setaccio il forum di HTML.it e non solo, ed il vecchio e caro inesauribile Google.

  2. #2
    Utente di HTML.it L'avatar di D4MI4NO
    Registrato dal
    Sep 2001
    Messaggi
    275
    Codice PHP:
    #include <stdio.h>

    int prova(int);

    main()
    {
        
    int numero 10scelta 0;

        
    printf("Premere 1 per elevare %d al quadrato."numero);
        
    printf("\nInput: ");
        
    scanf("%d", &scelta);

        if (
    scelta == 1)
        
    printf("Per valore, %d"prova(numero));

        return 
    0;

    }


    int prova (int cifra) {
    return 
    cifra cifra;


    ciao, ti sei scordato il & all'interno dello scanf()

  3. #3
    Grazie D4MI4NO.
    Che errore banale che ho commesso!

    Grazie ancora e a buon rendere.

  4. #4
    Utente di HTML.it L'avatar di D4MI4NO
    Registrato dal
    Sep 2001
    Messaggi
    275

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 © 2024 vBulletin Solutions, Inc. All rights reserved.