Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27

    strano segmentation fault

    Ciao ragazzi,
    ho un problemone di segmentation fault durante un accesso ad un membro privato di una classe da parte di una funzione della classe stessa.

    Il membro privato è una mappa

    codice:
     map<string, elem> tavola
    la funzione della classe in questione non fa altro che crearmi un altra tavola ausiliaria dello stesso tipo dove salvare i dati, e alla fine faccio un bel

    codice:
    tavola = tavola_ausiliaria
    risultato : SEGMENTATION FAULT

    nn so proprio come un errore del genere possa saltare fuori in un assegnamento tra oggetti dello stesso tipo.

    Giusto per informazioni utile, al costruttore della classe non gli faccio fare nulla...

    che ne pensate???da cosa potrebbe dipendere???

  2. #2

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,304

    Moderazione

    Linguaggio? Regolamento...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27
    Originariamente inviato da MacApp
    "elem" di che tipo è?
    si scusami me ne sn accorto tardi...

    elem è una struct che ho definito io nel private della mia classe...

    linguaggio c++

  5. #5
    E' indispensabile conoscere il dettaglio della struct elem. Magari poi se riesci a postare un codice (minimalista) compilabile ed eseguibile che riproduca il tuo problema, forse avrai maggiori probabilità che qualcuno possa aiutarti a risolverlo. Altrimenti la vedo un po' dura.

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27
    Originariamente inviato da MacApp
    E' indispensabile conoscere il dettaglio della struct elem. Magari poi se riesci a postare un codice (minimalista) compilabile ed eseguibile che riproduca il tuo problema, forse avrai maggiori probabilità che qualcuno possa aiutarti a risolverlo. Altrimenti la vedo un po' dura.
    è...il problema è che la funziona che usa quella struttura sono + di 300 righe di codice...

    io la posto pure non ho problemi...ma non penso sia lecito...

  7. #7
    purtroppo gli errori si identificano spesso solamente con la procedura che ti ha indicato MacApp, cioè sfoltire il codice fino ad arrivare ad uno minimale che ancora riproduca l'errore. Probabilmente fatto questo non avrai neanche bisogno del nostro aiuto in quanto l'errore lo avrai trovato da solo.
    ciao
    sergio

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2005
    Messaggi
    27
    guardate ho provato a fare una cosa...

    inserire nel costruttore un inizializzazione di quella mappa di cui parlo inserendo un elemento...

    codice:
     struct elem
    		{
    		DataTypeName type;
    		int addr;
    		int lineno;
    		};
    
    class SymbolTable
    	{		
    	         map<string,elem> tavola;
    	public:
    		SymbolTable() {elem info;
    				info.type = INT;
    				info.addr = 0
    				info.lineno = 0
    				tavola.insert ( pair<string, elem> ( "prova", info ) );}
    
    		///
    		///Funzione che crea uno streamfile dove viene salvata la lista dei token al
    		///quale verrà applicata la funzione privata symbolScan che creerà la tavola
    		///dei simboli.
    		///
    		void symbolScan(TokenList::iterator, TokenList&, map<string,elem>& );
    		~SymbolTable() {};
    
    	};

    sempre segmentation fault...

  9. #9
    DataTypeName chi è ?

    prova ad inserire nella struttura elem un costruttore
    codice:
     struct elem
    		{
    		DataTypeName type;
    		int addr;
    		int lineno;
                    elem () : addr(0), lineno(0) {
        // inizializzi type
    
     }
    
    		};
    ciao
    sergio

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.