<br><font size=2 face="sans-serif">Unless there is a sophisticated bound
checker at work, it will not matter as data passed in is char[24] and char[20]
will be same as char * in declaration.</font>
<br>
<br><font size=2 face="sans-serif">I will change [20] to [24] in trunk
to make aesthetically more pleasing.</font>
<br>
<br><font size=2 face="sans-serif">John Forrest</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>"Cheng,Jen-Min"
<jcheng@mwdh2o.com></b> </font>
<br><font size=1 face="sans-serif">Sent by: coin-discuss-bounces@list.coin-or.org</font>
<p><font size=1 face="sans-serif">07/03/2007 10:10 AM</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
Discussions about open source software for Operations Research
<coin-discuss@list.coin-or.org></font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif"><coin-discuss@list.coin-or.org></font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[Coin-discuss] CoinUtils CoinMpsIO.cpp
CoinConvertDouble char outputValue[20]</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=3><br>
</font>
<p><font size=4 face="Courier New">The outputValue is decalred as char
[20] in both CoinMpsIO.cpp and CoinMpsIO.hpp. </font>
<p><font size=2 color=blue face="Courier New">void</font><font size=3>
</font><font size=2 face="Courier New"><br>
CoinConvertDouble(</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
section, </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
formatType, </font><font size=2 color=blue face="Courier New">double</font><font size=2 face="Courier New">
value, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
outputValue[20])</font><font size=3> </font>
<p><font size=2 color=blue face="Courier New">void</font><font size=3>
</font><font size=2 face="Courier New"><br>
CoinConvertDouble(</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
section, </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
formatType, </font><font size=2 color=blue face="Courier New">double</font><font size=2 face="Courier New">
value, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
outputValue[20]);</font><font size=3> </font>
<p>
<p><font size=4 face="Courier New">In the code, outputValue is initialized
to be 24 spaces, which exceeds char [20].</font><font size=3> </font>
<p><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New">
(fabs(value)<1.0e40) {</font><font size=3> </font><font size=2 face="Courier New"><br>
memset(outputValue,</font><font size=2 color=#a11f12 face="Courier New">'
'</font><font size=2 face="Courier New">,24);</font><font size=3> </font>
<p><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">
(j=0;j<23;j++) {</font><font size=3> <br>
</font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New">
(outputValue[j]!=</font><font size=2 color=#a11f12 face="Courier New">'
'</font><font size=2 face="Courier New">)</font><font size=3> <br>
</font><font size=2 face="Courier New"> outputValue[i++]=outputValue[j];</font><font size=3>
</font><font size=2 face="Courier New"><br>
}</font><font size=3> </font>
<p><font size=4 face="Courier New">ClpSimpexOther passes char number[20]
to CoinConvertDouble. </font>
<p><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
<br>
ClpSimplexOther::writeBasis(</font><font size=2 color=blue face="Courier New">const</font><font size=2 face="Courier New">
</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
*filename,</font><font size=3> <br>
</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">bool</font><font size=2 face="Courier New">
writeValues,</font><font size=3> <br>
</font><font size=2 face="Courier New"> </font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
formatType) </font><font size=2 color=blue face="Courier New">const</font><font size=3>
</font><font size=2 face="Courier New"><br>
</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
number[20];</font><font size=3> </font><font size=2 face="Courier New"><br>
CoinConvertDouble(0,formatType,columnActivity_[iColumn],number);</font><font size=3>
</font>
<p>
<p><font size=2 face="Courier New">convertDouble passes char outputValue[24]
to CoinConvertDouble. </font>
<p><font size=2 color=blue face="Courier New">static</font><font size=2 face="Courier New">
</font><font size=2 color=blue face="Courier New">void</font><font size=3>
</font><font size=2 face="Courier New"><br>
convertDouble(</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
section,</font><font size=2 color=blue face="Courier New">int</font><font size=2 face="Courier New">
formatType, </font><font size=2 color=blue face="Courier New">double</font><font size=2 face="Courier New">
value, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
outputValue[24],</font><font size=3> <br>
</font><font size=2 face="Courier New">
</font><font size=2 color=blue face="Courier New">const</font><font size=2 face="Courier New">
</font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
* name, </font><font size=2 color=blue face="Courier New">char</font><font size=2 face="Courier New">
outputRow[100])</font><font size=3> </font><font size=2 face="Courier New"><br>
{</font><font size=3> </font><font size=2 face="Courier New"><br>
convertRowName(formatType,name,outputRow);</font><font size=3> </font><font size=2 face="Courier New"><br>
CoinConvertDouble(section,formatType&3,value,outputValue);</font><font size=3>
</font><font size=2 face="Courier New"><br>
}</font><font size=3> </font>
<p><font size=3><br>
</font>
<p><font size=4 face="Courier New"><b>Will such a practice mess up the
data? Thanks.</b></font><font size=3> </font>
<p><font size=3><br>
</font><tt><font size=2>_______________________________________________<br>
Coin-discuss mailing list<br>
Coin-discuss@list.coin-or.org<br>
http://list.coin-or.org/mailman/listinfo/coin-discuss<br>
</font></tt>
<p>