Я не думаю, что кто-то упоминал об этом, но у alloca также есть некоторые серьезные проблемы с безопасностью, которые не обязательно присутствуют в malloc (хотя эти проблемы также возникают с любыми массивами на основе стека, динамическими или нет). Так как память выделяется в стеке, переполнение / переполнение буфера имеет гораздо более серьезные последствия, чем просто malloc.
В частности, адрес возврата для функции хранится в стеке. Если это значение будет повреждено, ваш код может быть перемещен в любую исполняемую область памяти. Компиляторы идут на все, чтобы сделать это трудным (в частности, путем рандомизации размещения адресов). Тем не менее, это явно хуже, чем просто переполнение стека, так как лучший случай - SEGFAULT, если возвращаемое значение повреждено, но он также может начать выполнять случайный фрагмент памяти или в худшем случае некоторую область памяти, которая ставит под угрозу безопасность вашей программы. .
У вас есть ошибка в режиме разработки для некоторого настраиваемого элемента управления, вероятно, PageScroller, и, очевидно, начиная с конструктора. Возможно, в конструкторе есть какой-то код, который возвращает значение null в режиме разработки, и это значение не проверяется.
Иногда я вижу подобные проблемы. Я начал переносить код из конструктора в событие загрузки, и это помогло.