Я пишу библиотеку для C, и одна функция может вернуть либо строку (char *
), либо целое число, либо двойное число. Кроме того, длина строки неизвестна. Я действительно не знаю, как справиться с этой проблемой. Я думал об использовании указателей в качестве аргументов функции, но это действительно грязно.
Может кто-нибудь дать мне решение, а может, какой-нибудь короткий пример кода? Спасибо.
Редактировать
А как насчет пустого указателя в качестве возвращаемого типа и указателя на размер возвращаемого значения в качестве аргумента:
void* func(int x, int y, int *size) { ... }
/* or */
void* func(int x, int y, int &size) { ... }
/* always confused about them ): */