cin››str вызывает необработанное исключение (ntdll.dll) Чтение нарушения прав доступа

Я использовал VS2012 Ultimate для отладки простого тестового проекта Tester2, который содержит только один исходный файл Source.cpp:

//Source.cpp
#include<iostream>
#include<string>
#include<stdlib.h>
using namespace std;

int main()
{
    string s;
    cin>>s;
    return 0;
//Error occurrs after this line.
}

Сообщение об ошибке: Окно сообщения об ошибке

Затем он приводит меня к файлу с именем xdebug: xdebug

Стек вызовов: Стек вызовов

После установки точек останова я обнаружил, что ошибка возникает после строки «return 0».

Я предполагаю, что это какой-то указатель, удаленный в конце, до этого ничего не было выделено... Но я понятия не имею, как это решить.

Такая же ошибка возникает на VS2010.

Большое спасибо!


person Cameron Z    schedule 05.11.2015    source источник
comment
компилируется и работает нормально на моем vs2015   -  person pm100    schedule 05.11.2015
comment
Вы предоставили допустимую строку для cin?   -  person bjornruffians    schedule 05.11.2015
comment
Вы уверены, что у вас нет статических переменных, которые уничтожаются при выходе из программы и вызывают ошибку? Вы ожидали ошибку с точным кодом, как указано выше?   -  person Simon Kraemer    schedule 05.11.2015
comment
Не могли бы вы опубликовать полный стек вызовов вашего исключения?   -  person Simon Kraemer    schedule 05.11.2015
comment
ntdll.dll известна множеством крашей разного типа, похоже глючная библиотека. Если вы погуглите nrdll.dll, вы найдете много разных причин.   -  person    schedule 05.11.2015
comment
@bornruffians да, наверное. даже ввод одной буквы вызовет ошибку.   -  person Cameron Z    schedule 05.11.2015
comment
@SimonKraemer Я не думаю, что создал какую-либо другую переменную, кроме строки s. Приведенный выше код точно такой же в моем проекте, поэтому я называю его простым проектом.   -  person Cameron Z    schedule 05.11.2015
comment
Опубликован стек вызовов @SimonKraemer. Спасибо еще раз   -  person Cameron Z    schedule 05.11.2015
comment
Вы пробовали очистить и восстановить?   -  person Lol4t0    schedule 05.11.2015
comment
@ Lol4t0 Я только что попробовал, но не работает :(   -  person Cameron Z    schedule 05.11.2015
comment
@blade: NTDLL.DLL в порядке. Проблемы с этим вызваны разработчиками, которые пишут плохой код, который портит память, и не улавливают проблему, и когда это, наконец, вызывает AV, местоположение находится в адресном пространстве NTDLL. NTDLL не глючит.   -  person Ken White    schedule 05.11.2015
comment
Создавая это, вы начали с пустого проекта или одного из шаблонов (например, консольного приложения Windows)? Кроме того, возникает ли исключение при компиляции как для выпуска, так и для отладки?   -  person bjornruffians    schedule 06.11.2015
comment
@bornruffians Это пустой проект. Ну, я только что собрал Tester2.exe из проекта и запустил его, и через несколько секунд после того, как я ввел строку, появилось окно с сообщением, что Tester2.exe перестал работать... Отладка или закрытие программы   -  person Cameron Z    schedule 06.11.2015