Почему появляется System.AccessViolationException в Visual Studio 2010?
Попробуйте char * str = "Hello"; заменить на char str[] = "Hello";
Подозреваю, что строка "Hello" при сборке помещается в секцию без прав на запись, вы этот указатель используете и пытаетесь в ту самую RO область писать.
Ошибка в строке if (count == 0)
Нужно if (count != 0)
В целом ещё несколько замечаний, но по вопросу именно так.