Russian Qt Forum
Май 23, 2024, 11:13 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: (РЕШЕНО) Несколько использований itoa  (Прочитано 2771 раз)
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;
}


« Последнее редактирование: Сентябрь 10, 2012, 16:35 от johnpion » Записан
LisandreL
Птица говорун
*****
Offline Offline

Сообщений: 984


Надо улыбаться


Просмотр профиля
« Ответ #1 : Сентябрь 08, 2012, 01:38 »

Очень сомнительно смотрится каст числа в указатель:
Код
C++ (Qt)
(const char*)result
Что по вашей задумке должен этот код сделать?
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.061 секунд. Запросов: 19.