[SCIP] Multiple SCIP_ConsData cause heap corruption

Marc Pfetsch pfetsch at mathematik.tu-darmstadt.de
Thu Oct 22 11:15:00 CEST 2020


Hi Markó,

this is somewhat off topic.

In any case, I think that this is a C++-11 thing. Actually, when
compiling your code with g++, I get: "one.cpp:7:10: warning: non-static
data member initializers only available with -std=c++11 or -std=gnu++11".

Indeed if I remove your static initialization, I get the correct result.

Best

Marc


On 22/10/2020 10.37, Horváth Markó wrote:
> Dear All,
> 
> I am working on a branch-and-price project using SCIP, but I got stuck
> on something. Actually, I reduced my problem to a "simple" C++ issue,
> but due to the design of SCIP maybe you have already run into this
> problem and know the solution.
> 
> So, my problem is that I have three different user-defined constraints
> and thus three different user-defined constraint data, that is, three
> different structures in three different .cpp files with the same name:
> SCIP_ConsData. (Due to the design of SCIP, I must use this name for all
> structures). Everything was fine when I used only the first two
> constraints (it was also a luck, I guess), however, the third one ruined
> everything. The problem is that in runtime these structures are mixed up
> which causes a heap corruption.
> 
> More precisely, I have three SCIP_ConsData structures in different .cpp
> files (say, one.cpp, two.cpp, three.cpp) and when I want to create a new
> instance of the corresponding SCIP_ConsData in file two.cpp, the
> structure in file one.cpp is going to be created. Later, it will cause a
> heap corruption.
> 
> What should I do to fix this issue?
> 
> I attach a very minimal working example for this phenomenon. I use
> Visual Studio 2019 under Windows 10 with C++17 Standard.
> 
> Best Regards,
> Marko
> 
> _______________________________________________
> Scip mailing list
> Scip at zib.de
> https://listserv.zib.de/mailman/listinfo/scip
> 


More information about the Scip mailing list