Ошибка при выполнении с указателями
Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain
Такая ошибка возникает, когда...
1. Выходишь за пределы массива
2. Не удаляешь дин. массив в нужный момент
Здесь могут помочь, Exceptions... При условии, что дело совсем туго!!!
1. Выходишь за пределы массива
2. Не удаляешь дин. массив в нужный момент
Здесь могут помочь, Exceptions... При условии, что дело совсем туго!!!
Усложнять - легко, упрощать - сложно
Господа, а переведите-ка с Ц на русский вот это вот условие:
j<=*n+1
Замени
for (int j=1;j<=*n+1;j++)
на
for (int j=1;j<*n+1;j++)
, т.к. в массиве нет элемента с индексом j
for (int j=1;j<=*n+1;j++)
на
for (int j=1;j<*n+1;j++)
, т.к. в массиве нет элемента с индексом j

Усложнять - легко, упрощать - сложно
Исходный кусок кода НЕ будет работать.
Если n - целое, то непонятно условие j <=*n+1 - тут должно быть исключение
Если n - указатель на целое, то непонятно new int[n]
И вообще...
Если n - целое, то непонятно условие j <=*n+1 - тут должно быть исключение
Если n - указатель на целое, то непонятно new int[n]
И вообще...
*provided AS IS
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
И вообще это была опечатка автора, наверное, господа. По той причине, что исходный код у него компилился. Единственная логическая ошибка - это манипулирование "паскалевскими" пределами массива (1..n) вместо "сишных" (0..n-1). Parasite, попробуй организовать цикл следующим образом:
Код: Выделить всё
for (i = 0; i < n; i++)
{
...
}
Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
-
- Сообщения: 497
- Зарегистрирован: 17 фев 2004, 11:26
- Откуда: Ленинград (который Город на Неве)
- Контактная информация:
Пиши:
Если цикл от 0 до n+1
Какого размера остальные массивы?
Код: Выделить всё
int *px1 = new int[n+2], *px2= new int[n+2],
*py1 = new int[n+2], *py2 = new int[n+2];
Какого размера остальные массивы?
"Особое внимание начинающих аквариумистов хотим обратить на то, что рыбки никогда не спят на спинке!" (c)
viel spass, DeeJayC
viel spass, DeeJayC
- Romeo
- Сообщения: 3126
- Зарегистрирован: 02 мар 2004, 17:25
- Откуда: Крым, Севастополь
- Контактная информация:
Верно, ошибка или при задании размеров массива или при задании границ массива при его прецеесинге, третьего не дано 

Entites should not be multiplied beyond necessity @ William Occam
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.
---
Для выделения С++ кода используйте конструкцию [ code=cpp ] Код [ /code ] (без пробелов)
---
Сообщение "Спасибо" малоинформативно. Благодарность правильнее высказать, воспользовавшись кнопкой "Reputation" в виде звёздочки, расположенной в левом нижнем углу рамки сообщения.