Если у вас есть массив a
, который был создан с элементами n
, то при попытке получить доступ к элементу массива из облака это неопределенное поведение. Таким образом, индекс ДОЛЖЕН всегда быть между 0 и n-1.
Таким образом, поведение вашей программы не определено, как только count
равно 100, так как оценка условия в if
-предложении уже пытается получить доступ за пределами.
Теперь, кроме того, есть серьезная ошибка в логике вашей программы: если вы хотите добавить числа, которые удовлетворяют некоторому условию, вам нужно 2 счетчика: один для итерации по числам и один для последнего индекса, используемого в массиве:
for (int nextitem=0, count = 1; count < 200; count++) {
if (count % 2 == 1) { // not a[count], you need to test number itself
a[nextitem++] = count;
cout << count << endl;
if (nextitem == 100) { // attention: hard numbers should be avoided
cout << "Array full: " << nextitem << " items reached at " << count <<endl;
break; // exit the for loop
}
}
}
Но, это решение требует, чтобы вы отслеживали последний элемент в массиве и размер массива (это жестко запрограммировано здесь).
Вы, вероятно, учитесь. Но в C ++ лучшим решением было бы использовать vector
вместо массива и использовать push_back()
. Векторы управляют памятью, так что вы можете сосредоточиться на своем алгоритме. Полная программа будет выглядеть следующим образом:
vector<int> a;
for (int count = 1; count < 200; count++) {
if (count % 2 == 1) {
a.push_back(count);
cout << count << endl;
}
}
cout << "Added " << a.size() << " elements" <<endl;
cout << "10th element: "<< a[9] << endl;
BEX=Buffer переполняют исключения. См. http://technet.microsoft.com/en-us/library/cc738483.aspx для деталей. Однако c000000d является STATUS_INVALID_PARAMETER; technet статья говорит, прежде всего, о состоянии c0000005 или c0000409 (нарушение прав доступа / DEP)
Java и IE7 не нравится играть вместе приятно. Просто выключите DEP, он будет хорошо работать затем.
http://www.tech-recipes.com/rx/1261/vista_disable_dep_noexecute_protection_fix_explorer_crashing/
перейдите к опциям Internet Explorer/, совершенствовался,/security/снимают флажок, который, поскольку, который говорит, позволяют защите памяти смягчить нападения, это будет работать, это сделало для меня
перейдите к опциям Internet Explorer/, совершенствовался,/security/снимают флажок, который, поскольку, который говорит, позволяют защите памяти смягчить нападения, это будет работать, это сделало для меня
Скорее всего, есть надстройка, которая мешает IE.
Вы можете попробовать это. 1. Откройте IE. 2. Перейдите на вкладку «Дополнительно». 3. Нажмите кнопку «Сбросить настройки Internet Explorer». 4. Нажмите «Сброс», чтобы подтвердить операцию. 5. По завершении процесса сброса нажмите «Закрыть». 6. Снимите флажок «Включить сторонние расширения браузера» в поле «Настройки». 7. Щелкните «Применить», затем «ОК».
После этого проверьте, работает ли он, и, если работает, включайте по одному надстройке за раз, пока не найдете виновника. Затем удалите его и при необходимости переустановите.
просто попробуйте отключить панель инструментов bing или msn - это должно помочь.