<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>&quot;Cheng,Jen-Min&quot;
&lt;jcheng@mwdh2o.com&gt;</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 &nbsp; &nbsp;
&nbsp; &nbsp;&lt;coin-discuss@list.coin-or.org&gt;</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">&lt;coin-discuss@list.coin-or.org&gt;</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 &nbsp; &nbsp; &nbsp; &nbsp;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. &nbsp;</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">&nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">if</font><font size=2 face="Courier New">
(fabs(value)&lt;1.0e40) {</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;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">&nbsp; &nbsp; &nbsp; </font><font size=2 color=blue face="Courier New">for</font><font size=2 face="Courier New">
(j=0;j&lt;23;j++) {</font><font size=3> <br>
 &nbsp; &nbsp; &nbsp; &nbsp;</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>
 &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 face="Courier New"> &nbsp;outputValue[i++]=outputValue[j];</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;}</font><font size=3> </font>
<p><font size=4 face="Courier New">ClpSimpexOther passes char number[20]
to CoinConvertDouble. &nbsp;</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>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=2 face="Courier New"> &nbsp; &nbsp;</font><font size=2 color=blue face="Courier New">bool</font><font size=2 face="Courier New">
writeValues,</font><font size=3> <br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;</font><font size=2 face="Courier New"> &nbsp; &nbsp;</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>
 &nbsp;</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>
 &nbsp; &nbsp; &nbsp;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. &nbsp; </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>
 &nbsp; &nbsp; &nbsp; &nbsp;</font><font size=2 face="Courier New"> &nbsp;
&nbsp; &nbsp;</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>
 &nbsp;convertRowName(formatType,name,outputRow);</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;CoinConvertDouble(section,formatType&amp;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? &nbsp;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>