Looks fine, but probably best to avoid "new" and "delete". For
example, see code at
http://openbabel.org/docs/current/UseTheLibrary/CppExamples.html

- Noel

On 5 September 2013 12:16, Rafel Israels
<rafel.isra...@scai.fraunhofer.de> wrote:
> Dear all,
>
> As a new Babel-user  first of all I'd like to thank you for this great
> software !!
>
> My question: what is the correct way (in c++) to generate an OBMol
> object from a smiles-code ? I know how to convert smiles e.g. to inchi
> directly using a conv->convert(), but I dont see yet how I can get
> access to the obMol object ? My below code seems to work but leads to a
> valgrind error.
>
> Related to  this question: is there an API-description where I could
> have found the answer to this and similar questions ?
>
> regards,
>
> Rafel
>
>
> #include <iostream>
> #include <openbabel/obconversion.h>
> #include <openbabel/mol.h>
>
> int main() {
>
>   OpenBabel::OBMol *obMol = new OpenBabel::OBMol();
>
>   // conversion from smiles into inchi-key
>   OpenBabel::OBConversion conv(NULL,&std::cout);
>   conv.SetInAndOutFormats("SMI","inchi");
>   conv.AddOption("K",OpenBabel::OBConversion::OUTOPTIONS);
>
>   // following statement raises valgrind error 'conditional jump ..'
>   conv.ReadString(obMol, "C");
>
>   // just a test to see that obMol is assigned
>   conv.Write(obMol);
>   delete obMol;
>
> }
>
> valgrind error:
>
> ==13841== Conditional jump or move depends on uninitialised value(s)
> ==13841==    at 0x5D154E0: inflateReset2 (in
> /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
> ==13841==    by 0x5D155D8: inflateInit2_ (in
> /lib/x86_64-linux-gnu/libz.so.1.2.3.4)
> ==13841==    by 0x4F3CEFC: ??? (in /usr/lib/libopenbabel.so.4.0.0)
> ==13841==    by 0x4F3D078: ??? (in /usr/lib/libopenbabel.so.4.0.0)
> ==13841==    by 0x4F3D1A9: ??? (in /usr/lib/libopenbabel.so.4.0.0)
> ==13841==    by 0x4F35398:
> OpenBabel::OBConversion::Read(OpenBabel::OBBase*, std::istream*) (in
> /usr/lib/libopenbabel.so.4.0.0)
> ==13841==    by 0x4F35953:
> OpenBabel::OBConversion::ReadString(OpenBabel::OBBase*, std::string) (in
> /usr/lib/libopenbabel.so.4.0.0)
> ==13841==    by 0x400F8B: main (test.cpp:20)
>
>
>
> ------------------------------------------------------------------------------
> How ServiceNow helps IT people transform IT departments:
> 1. Consolidate legacy IT systems to a single system of record for IT
> 2. Standardize and globalize service processes across IT
> 3. Implement zero-touch automation to replace manual, redundant tasks
> http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
> _______________________________________________
> OpenBabel-discuss mailing list
> OpenBabel-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

------------------------------------------------------------------------------
How ServiceNow helps IT people transform IT departments:
1. Consolidate legacy IT systems to a single system of record for IT
2. Standardize and globalize service processes across IT
3. Implement zero-touch automation to replace manual, redundant tasks
http://pubads.g.doubleclick.net/gampad/clk?id=51271111&iu=/4140/ostg.clktrk
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

Reply via email to