Thank you for the suggestions. I actually managed to solve the problem without using Valgrind.<br>In the debugger I noticed that I was writing beyond the array boundaries in x_l, x_u and g_l,g_u. Apparently this only became a problem after exiting the get_bounds_info() function, when control was passed back to IPOPT.<br>
<br>However, now the problem is solved and all the vectors have the correct sizes and number of elements. And the optimization runs succesfully.<br><br>Best regards,<br>Alexandru Tatulea<br><div class="gmail_extra"><br><br>
<div class="gmail_quote">On Sat, Dec 15, 2012 at 3:00 PM, Hans Pirnay <span dir="ltr">&lt;<a href="mailto:hans.pirnay@rwth-aachen.de" target="_blank">hans.pirnay@rwth-aachen.de</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
Hi Alex,<br>
<br>
try compiling your code in debug mode (gcc -g) and run it through<br>
valgrind. valgrind will tell you where the &#39;free&#39; comes from.<br>
<span class="HOEnZb"><font color="#888888"><br>
Hans<br>
</font></span><div class="HOEnZb"><div class="h5"><br>
On Sat, Dec 15, 2012 at 12:49 PM, Alex Tătulea &lt;<a href="mailto:tatulea.alex@gmail.com">tatulea.alex@gmail.com</a>&gt; wrote:<br>
&gt; Hello,<br>
&gt;<br>
&gt; I am new to IPOPT and I have to code this NLP in C++ under Linux. I have<br>
&gt; implemented all the functions and individually tested them, they seem to<br>
&gt; return the correct results.<br>
&gt;<br>
&gt; But when I try running the optimizeNLP() function, I get an error in the<br>
&gt; console with the message &#39;Double free or corruption (!prev)&#39;. After tracking<br>
&gt; the error with GDB, it seems that the optimizer calls the get_nlp_info()<br>
&gt; routine with no error, and then performs the get_bounds_info() until return.<br>
&gt; At this point, seems that the free() function is called (I don&#39;t know where<br>
&gt; from) and then the memory error occurs and the program is aborted.<br>
&gt;<br>
&gt; If anyone has encountered something like this, please give me a hint on how<br>
&gt; to approach this problem. Is there some particular mechanism inside IPOPT<br>
&gt; for freeing memory and handling vectors I should be aware of? Inside this<br>
&gt; function I am not doing much, just assigning the values to x_l, x_u and<br>
&gt; g_l,g_u...<br>
&gt;<br>
&gt; Thanks in advance, I hope someone could help me here with an idea!<br>
&gt;<br>
&gt; Alex<br>
&gt;<br>
</div></div><div class="HOEnZb"><div class="h5">&gt; _______________________________________________<br>
&gt; Ipopt mailing list<br>
&gt; <a href="mailto:Ipopt@list.coin-or.org">Ipopt@list.coin-or.org</a><br>
&gt; <a href="http://list.coin-or.org/mailman/listinfo/ipopt" target="_blank">http://list.coin-or.org/mailman/listinfo/ipopt</a><br>
&gt;<br>
</div></div></blockquote></div><br></div>