Hello,

without being too much into C++: you allocate 'mol' on the stack, then push it 
into the vector and clean it for re-usal afterwards.

Is that allowed? Does the vector atomagically make a copy of 'mol'?  What 
happens when you allocate 'mol' yourself and store the pointer to it in the 
vector, like:

vector<OBMol*> molecules;
OBMol *mol;
while (!feof(f)) {
mol = new OBMol();
        fscanf(f, "%c %c", &type, &comment);
                if (type == comment) 
            continue;
        
        //molecule title and its frequency
        if (type == 't') {
            fscanf(f, "%256s %d\n", buffer, &frequency );
            mol->SetTitle(buffer);
        }         
        
        //molecule nodes and edges
        while (!feof(f)) {
            fscanf(f, "%c", &type);
            if (type == 'v' || type == 'V') {
                fscanf(f, "%d %256s\n", &v1, buffer);
                m->NewAtom(v1);    
                
                //set atom type
                mol->GetAtomById(v1)->SetType(buffer);     
            }
            else if (type == 'u' || type == 'U' ){
                fscanf(f, "%d %d %d\n", &v1, &v2, &order);
                mol->AddBond(v1+1, v2+1, order);
                POS = ftell(f);
            }
            else if(type == 't') { 
                //go back one line to get new molecule header
                fseek(f, POS, SEEK_SET);   
                molecules.push_back(mol); 
                break;
            }
        }
        }
}

Does that change anything?

BTW: You declare 'mol' and then use 'm' afterwards in the code. If that really 
compiles, you have a variable scope problem somewhere...

Best regards,

Ernst-Georg

------------------------------------------------------------------------------
Enable your software for Intel(R) Active Management Technology to meet the
growing manageability and security demands of your customers. Businesses
are taking advantage of Intel(R) vPro (TM) technology - will your software 
be a part of the solution? Download the Intel(R) Manageability Checker 
today! http://p.sf.net/sfu/intel-dev2devmar
_______________________________________________
OpenBabel-Devel mailing list
OpenBabel-Devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-devel

Reply via email to