| |||||||||||
Sprintf memory leak ????????????????? Posted by nano (nano), 19 January 2007 Hi,I am using sprintf like so where i want my numeric to be converted to a string char string[100]; int result; ret = sprintf(string, "%d", result); does any one know if this will cause a memory leak ? Another question. I have the following scenario -12.34 is a numeric I want to convert this to a string like so "-12.34" What would be the best c function to do this ? Posted by Yash (Yash), 6 March 2007 There is a function called _ecvt() which converts float to string, compatible only in Windows platform. Prototype of this is as below: char *_ecvt( double value, int count, int *dec, int *sign ); Below program for the output your expecting can give you. #include <stdlib.h> #include <stdio.h> int main( void ) { int decimal, sign; char *buffer; int precision = 2; double source = -12.34; buffer = _ecvt( source, precision, &decimal, &sign ); printf( "source: %2.2f buffer: '%s' decimal: %d sign: %d\n", source, buffer, decimal, sign ); } output of above program is like this: source: -12.34 buffer: '12' decimal: 2 sign: 1 Hope this is useful to you.. I am new to opentalk.. Cheers Yash Posted by Yash (Yash), 6 March 2007 For the first question (sprintf question), my answer is YES, because you have declared array of 100 char's. Also you are declaring result of integer data type which can take maximum of 5 digits( Max num of 32767 ), so remaining 95 chars are not not under use called memory leak. so declare the variable as char string[6]; (one for '/0' char) Cheers Yash This page is a thread posted to the opentalk forum
at www.opentalk.org.uk and
archived here for reference. To jump to the archive index please
follow this link.
|
| ||||||||||
PH: 01144 1225 708225 • FAX: 01144 1225 793803 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho |