Название: (РЕШЕНО) Несколько использований itoa
Отправлено: johnpion от Сентябрь 08, 2012, 00:53
Делаю расширение для sqlite, которое возвращает значение в денежном формате. Sqlite падает, когда выполняется несколько раз itoa #include "sqlite3ext.h" #include <stdlib.h> #include <string.h> SQLITE_EXTENSION_INIT1
static void moneyFunc( sqlite3_context *context, int argc, sqlite3_value **argv ){ char *result; char *c = "00"; char *decStr = ",";
int sum = sqlite3_value_int(argv[0]); int full = sum / 100; int dec = sum % 100;
itoa(full, result, 10); itoa(dec, c, 10);
/* ... */
strcat(result, decStr); strcat(result, c);
sqlite3_result_text(context, result, 8, 0); }
int sqlite3_extension_init( sqlite3 *db, char **pzErrMsg, const sqlite3_api_routines *pApi ){ SQLITE_EXTENSION_INIT2(pApi) sqlite3_create_function(db, "money", 1, SQLITE_ANY, 0, moneyFunc, 0, 0); return 0; }
Название: Re: Падает расшидение для sqlite
Отправлено: LisandreL от Сентябрь 08, 2012, 01:38
Очень сомнительно смотрится каст числа в указатель: C++ (Qt) (const char*)result
Что по вашей задумке должен этот код сделать?
|