1 / 0 / 1
Регистрация: 14.12.2013
Сообщений: 32
|
||||||
1 | ||||||
Почему не работает код?26.11.2014, 11:42. Показов 531. Ответов 6
Метки нет (Все метки)
Может кто найдёт ошибку:
0
|
26.11.2014, 11:42 | |
Ответы с готовыми решениями:
6
Почему не работает код на других компьютерах (на моем работает)? Почему не работает код? Почему код не работает? Почему не работает код? |
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|||||||||||
26.11.2014, 12:04 | 2 | ||||||||||
Не понимаю, как тут можно "не мочь понять", если выход за пределы вектора очевиден. Например
0
|
1 / 0 / 1
Регистрация: 14.12.2013
Сообщений: 32
|
|
26.11.2014, 15:45 [ТС] | 3 |
Я не понимаю почему при векторе(vector <vector<int> > pole) этот фрагмент кода выходит за пределы, а при обыкновенном двухмерном массиве (int pole[10][10]) не выходит.
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|
26.11.2014, 18:48 | 4 |
Почему вы так решили?
Ваш код выходит за пределы массива совершенно одинаково в обоих вариантах. Разница только в том, что 'std::vector' отлавливает выход за пределы массива в отладочной реализации оператора [] и громко вам об этом сообщает. А "сырой" массив 'int pole[10][10]' ничего никогда не отлавливает. В варианте с 'int pole[10][10]' вы просто тихо лезете в память за пределами строки и/или столбца массива (возможно попадая в пямять другой строки и/или столбца этого же массива) и работаете с ней, не замечая, что ваша программа занимается ерундой и работает неправильно.
0
|
1 / 0 / 1
Регистрация: 14.12.2013
Сообщений: 32
|
|
26.11.2014, 19:22 [ТС] | 5 |
я так решил, потому что программа работает совершенно правильно. Никаких проблем не наблюдалось. Хотя может я просто не замечал. А есть вариант как правильно сделать. Я просто совсем немножко разбираюсь в программировании, и моих знаний недостаточно, чтобы решить эту проблему
0
|
Вездепух
11691 / 6370 / 1723
Регистрация: 18.10.2014
Сообщений: 16,051
|
|
26.11.2014, 19:28 | 6 |
Программы, вызывающие неопределенное поведение, зачастую создают иллюзию того, что "работают совершенно правильно". Пока работают.
Сделать что? Пока вы не объясните, что именно вы хотели сделать, невозможно говорить о "правильно" или "неправильно".
0
|
1 / 0 / 1
Регистрация: 14.12.2013
Сообщений: 32
|
|
26.11.2014, 19:47 [ТС] | 7 |
сделать, чтоб не выходило за вектор, а сама программа от этого не пострадала, то есть расставляла корабли по всему игровому полю
0
|
26.11.2014, 19:47 | |
26.11.2014, 19:47 | |
Помогаю со студенческими работами здесь
7
Почему код не работает? почему код не работает? Почему не работает код? Почему этот код работает? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |