Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    51

    [C] Crash di un codice elementare, non capisco perhè...

    come da titolo stavo inizianda a scrivere un programma, e proprio nelle fasi iniziali, dove ancora è presente solo codice elementare e senza complicanze logiche mi ritrovo un crash del programma senza riuscire a capire come mai.

    Il programma, fino a questo stato dovrebbe acquisire tramite una funzione una serie di numeri e memorizzarli in un vettore di interi..... il problema è che se lo faccio girare con N>9 il programma crasha inspiegabilmente secondo il mio punto di vista... spero qualcuno posso aiutarmi, posto di seguito il codice.

    codice:
    #include <stdio.h>
    
    #define N 9
    
    void leggi_vettore (int *vettore);
    int main ()
    {
    int i, vett[N];
        
        leggi_vettore(vett);
        printf("OK, adesso stampiamo il vettore per verificare l'acquisizione!\n");
        for (i=0;i<N;i++)
            printf("%d - ", vett[i]);
        system("PAUSE");
        }
    
    void leggi_vettore (int *vettore)
    {
    int i;
         for (i=0;i<N;i++)
         {
             printf ("Inserire il numero: \n");
             scanf("%d", &vettore[i]);
             
             }
         
         }

  2. #2
    Provato con gcc 4.3.3 su Linux 2.6 x86_64 e non ho problemi.
    Amaro C++, il gusto pieno dell'undefined behavior.

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    51
    io uso devcpp su windows 7RC.... magari più tardi provo anche io su linux, ma non avevo mai avuto problemi prma di ora a programmare su questo sistema, ed ho fatto veramente tante cose.....

  4. #4
    In che punto ti va in crash? Hai provato a fare un debug passo passo?

  5. #5
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    51
    ho provato a debuggare passo passo, va in crash un po random, non capisco bene, a volte si ferma sul printf a volte sullo scanf ma sempre dentro il ciclo if della funzione, diciamo che per l'acquisizione dei primi 4-5 valori sembra funzionare sempre, dopo tale soglia a volte crasha al 6, 7, 8, non ho capito se dipende dal tempo di esecuzione (cioè se avviene dopo un certo periodo di tempo che è in esecuzione), sta di fatto che acquisisce correttamente i primi valori e poi ad un tratto si pianta e non risponde ai comandi, non mi da nessun tipo di messaggio se non che mi si chiude la finestra dopo che rimane in freeze per alcuni secondi... tutto qui....

  6. #6
    Provato con un altro compilatore?
    Amaro C++, il gusto pieno dell'undefined behavior.

  7. #7
    dentro il ciclo if della funzione
    Quale if?

    Così per pignoleria, visto che anche a me non dà problemi, potresti provare ad utilizzare la seguente leggi_vettore e dirci se cambia qualcosa?

    codice:
    void leggi_vettore(int *vettore)
    {
        int i, j;
        for (i = 0; i < N; i++)
        {
            printf ("Inserire il numero: \n");
            scanf("%d", &j);
            vettore[i] = j;
        }
    }
    HTH,

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    51
    scusa un lapsus... non if ma for.... cmq adesso provo

  9. #9
    Utente di HTML.it
    Registrato dal
    Aug 2007
    Messaggi
    51
    niente, si pianta lo stesso, anche con la tua funzione, ho provato anche con codeblocks sempre sullo stesso sistema, non cambia....

  10. #10
    Ricapitolando, finchè N vale 9 o meno di 9 tutto funziona bene, invece se anche metti N pari a 10 ti va in crash, confermi?

    Come numeri in input cosa metti? Hai provato con tutti 1?

    Lo so che non dovrebbe contare eh, ma vista la stranezza bisogna pensarle tutte...

    Ah, poi usa la definizione standard per il main:

    int main(int argc, char* argv[])
    {
    }

    e metti il return(0); alla fine.

    HTH,

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.