Все отлично с GC в go. Память очищается, не возвращается системе, а переиспользуется программой до тех пор, пока в системе достаточно свободной памяти.
Объявление переменной как раз является запросом на выделение памяти. Если вам необходимо выделить меньше памяти - можно использовать тип с меньшим размером - байт, бит. А примером динамически растущих структур памяти может быть какой-нибудь вектор из C++. В чем недостаток - накладные расходы. В случае недоступности непрерывного участка памяти при расширении классического массива, нужно будет скопировать всю структуру в другую область памяти. Гораздо быстрее и экономичнее с точки зрения скорости работы выделить сразу больший шмат памяти, благо её нынче не дефицит на ПК.
Я для таких целей использовал свой "домашний" номер (Онлайм-Ростелеком). Абонентской платы нет, входящие бесплатно. И этот номер уже можно подключить куда вздумается - не особо контролируется как он будет использоваться.
Описанная проблема имеет отношение к клиенту, а не серверу. Решить на стороне сервера ее невозможно и некорректно - нужно повторять попытку на клиенте. Поставить в очередь не выйдет, т.к. проверка происходит на этапе acl и фактически письмо еще не принято сервером.
Если я хорошо помню, входящие через транк будут направляться в extension с тем же номером, что и номер на который звонят в транк. Попробуйте в дополнение к экстеншкнау s добавить дополнительно номерные. Обычно номера начинаются на 7 без плюса, если дело в РФ.
*float64 это указатель на тип float64
Для получения указателя на которое ссылается указатель, необходимо произвести операцию разименовывания. Делается это через оператор * if *LOCAL_PERCENT < *GLOBAL_PERCENT