Вы должны понимать, в чем разница между int chars[256]
в функции и использованием malloc()
.
Короче говоря, первый помещает весь массив в стек. Последний выделяет память, которую вы запрашивали из кучи. Вообще говоря, куча намного больше, чем стек, но размер каждого из них можно регулировать.
Другое ключевое отличие состоит в том, что переменная, расположенная в стеке, технически исчезнет после того, как вы вернетесь из метода. (О, ваша программа может функционировать так, как будто она не исчезнет, если вы продолжите обращаться к этому массиву, но хо-хо-хо опасно. .