void func( char *output, int max_buffer )

これはさ、max_bufferで指定した範囲で対応出来るようにするための引数だろ
呼び出す側でintの範囲なら自由に決められるに決まってるだろ