Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317

    [C++] Segmentation fault con unordered_map

    codice:
    using ClusterMap = std::unordered_map<std::string, Clusters*>;
    ClusterMap clusters;
    
    
    [...]
    
    
        bool clusterExists(std::string& clusterName) {
            bool exists;
            #pragma omp critical
            {
                std::cout << "aaa-" << clusterName << "-\n";
                exists = clusters.find(clusterName) != clusters.end();
                std::cout << "bbb\n";
            }
    
    
            std::cout << "ccc\n";
            return exists;
        }

    Crasha sempre sul primo std::cout.
    La funzione non ha problemi per centinaia di iterazioni e stampando il nome del cluster da controllare non "ci sono caratteri strani" che potrebbero dare errore.
    codice:
    aaa-f_0.24_6,X1-
    Logiqo.org gestionale per perizie infortunistiche.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Dopo essere impazzito ore, penso che il problema dipenda dalla libreria `nlohmann/json.hpp`


    In questo pezzo di codice:
    codice:
    void load_strategy(std::string fileName) {
        std::ifstream f(fileName);
        // riga 123
        json j = json::parse(f);
        // riga 987
       [...]
    }

    se metto il return, subito dopo json j = json:arse(f); al posto della riga 987, mi darà SEMPRE un Segmentation fault dopo X iterazioni del mio codice.
    Se metto il return PRIMA di quella riga, cioè al posto di 123, il codice non crasherà mai.


    È una questione di memoria? Mi sembra piuttosto strano.
    Logiqo.org gestionale per perizie infortunistiche.

  3. #3
    Utente di HTML.it L'avatar di linoma
    Registrato dal
    Mar 2010
    Messaggi
    1,346
    ..dovresti mettere tutto il codice da quello che stati scrivendo
    Per gli Spartani e Sparta usa spartan Il mio github

  4. #4
    Utente di HTML.it
    Registrato dal
    Jun 2008
    Messaggi
    1,317
    Alla fine ho fatto una cosa: ho scritto una mia classe per l'IO e ho smesso di salvare i dati in .json.
    "Ho risolto", ma perdendo una giornata e mezza, però almeno ho risolto.
    Logiqo.org gestionale per perizie infortunistiche.

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.