Visualizzazione dei risultati da 1 a 2 su 2

Visualizzazione discussione

  1. #1

    [C] Il programma termina sempre alla stessa istruzione senza motivo.

    Salve a tutti, devo realizzare una funzione che ricevuta una stringa rappresentante un numero in binario(in complemento a due) restituisca il valore intero, ma il programma termina sempre quando arriva a una precisa istruzione(Un assegnamento, è evidenziato nel codice). Non ho proprio idea di come fare per risolvere il problema.

    Ecco il codice:

    codice:
    //Primo file, un header.
    #ifndef PROTOTIPI_H_
    #define PROTOTIPI_H_
    
    
    int convertiBin(char*); //Funzione che converte la stringa in intero
    
    
    #endif
    
    
    //Secondo file, implementazione della funzione, QUI C'È L'ISTRUZIONE CHE DA PROBLEMI
    
    int convertiBin(char*bin){              
        int i=0, negative=0, num=0;
        if(bin[i]=='1'){
            negative=1;
                while(bin[i]!='\0'){
                    if(bin[i]=='1')
                        bin[i++]='0';   // <----OGNI VOLTA CHE VIENE ESEGUITA QUESTA ISTRUZIONE IL 
                    else                    //PROGRAMMA TERMINA
                        bin[i++]='1';
                }
            i--;
            do{
            if(bin[i]=='0')
                      bin[i--]='1';
            else
                bin[i--]='0';
            }while(bin[i+1]=='0' && i>=0);
        }
        for(i=0; bin[i]!='\0'; i++)
                if(bin[i]!='0')
                    num+=pow(2, strlen(bin)-1-i);
        if(negative)
            return -num;
        else
            return num;
    
    
    
    
    }
    
    
    
    //Terzo file, contiene il main di prova(La stringa che passo è un esempio a caso)
    
    int main(){
    
    
        printf("%d", convertiBin("11011101"));
    
    
        return 0;
    }
    Come ho già detto sopra, non ho proprio idea del motivo per cui ciò accada, mi sembra davvero strano che il programma termini ad un assegnamento, eppure ho fatto il debug decine di volte o sempre quando arrivo all'istruzione segnalata e faccio step into, la prima volta non succede niente, rifaccio step into e il programma termina.
    Qualcuno ha qualche idea? Grazie in anticipo.
    Ultima modifica di StartingToDive; 16-01-2014 a 20:05 Motivo: Mancava un informazione

Tag per questa discussione

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.