2 / 2 / 0
Регистрация: 21.10.2012
Сообщений: 45
1

Серийный оператор for

18.06.2015, 10:50. Показов 2236. Ответов 2
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Программа копирующая вектор целых чисел в массив целых чисел.
C++
1
2
3
4
5
6
7
8
9
10
11
12
        const size_t ind = 6;   
    vector <int> ivec = { 4, 1, 2, 3, 4, 5 }; 
    vector <int>::iterator beg = ivec.begin();
    int arr[ind] = { 0 };
    for (auto &i : arr)
    {
        arr[i] = *beg;
        ++beg;
        cout << arr[i] << endl;
    }
    system("pause");
    return 0;
Написал код, но он странно работает:
1) Если инициализировать все элементы массива значением 0(int arr[i] = { 0 };), то будут скопированы все элементы, кроме 1-го.
2) Если инициализировать первое значение >0 и <=5(int arr[i] = { 5 };), то будут скопированы все элементы.
3) Если инициализировать 1-ый элемент значением >5 и <=7 (int arr[i] = { 5 };), то будут все скопированы все элементы, но после закрытия приложения выстрелит сообщение "Run-Time Check Failure #2 - Stack around the variable 'beg' was corrupted."
4)Если инициализировать 1-ый элемент значением >8? Будет вот такое сообщение "Unhandled exception at 0x013773FC in ConsoleApplication43.exe: 0xC0000005: Access violation reading location 0x0000006F."

Почему так? И код скорее всего неправильный, как его исправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
18.06.2015, 10:50
Ответы с готовыми решениями:

Как написать серийный оператор for для многомерного массива?
подскажите как написать серийный оператор for для многомерного массива

При попытке добавить оператор else, появляется оператор "Ожидался оператор"
Здравствуйте, помогите пожалуйста. У меня есть программа, которая решает квадратные уравнения. Но...

Серийный номер
Не могу найти информацию как можно реализовать активацию в моей программе (нужно при первом запуске...

серийный номера
Добрый день! УТ 10.3 В документе поступления нужно поставить кнопку и ревизит поле ввода. Из...

2
Эксперт С++
4985 / 3092 / 456
Регистрация: 10.11.2010
Сообщений: 11,169
Записей в блоге: 10
18.06.2015, 10:54 2
i - это ссылка на элемент массива, а не индекс.
0
Эксперт С++
8739 / 4317 / 960
Регистрация: 15.11.2014
Сообщений: 9,760
18.06.2015, 13:08 3
Код
for (auto &i : arr)
        cout << (i = beg++) << endl;
0
18.06.2015, 13:08
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2015, 13:08
Помогаю со студенческими работами здесь

Серийный номер флешки
Нужно узнать физический серийник флэшки. GetVolumeInformation - возвращает серийный номер тома,...

Серийный номер диска С
Привет всем. Если знайте помогите пожалуста. У меня здесь програмка который возвращает серийный...

Разыскивается серийный убийца
Часто слышу об одном серийном убийце. http://www.vesti.ru/doc.html?id=2701635&amp;cid=17 Последняя...

Серийный номер флешки
ManagementObjectSearcher theSearcher = new ManagementObjectSearcher(&quot;SELECT * FROM Win32_DiskDrive...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru