Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
#1

Указатель вне корректного диапазона - C++

27.07.2013, 17:42. Просмотров 432. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
void f(T a)
{
 T v[200];
 T p* = &v[0];
 p--;
 *p = a; // тут p вне корректного диапазона, почему? 
}
объясните этот момент плиз, я так понял, что когда мы дикрементируем указатель (p--), то т.к. указатель ссылался на начальный элемент массива типа T, то теперь он может ссылаться на другой тип, типа вышел из корректного lиапазона. Но почему не будет работать присваивание корректного адреса. Или типа указатель "испортился" когда сделали (p--)? А "починить" мы может только с помощь (p++). Но блин, почему так работает, в чем смысл, где логика?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2013, 17:42
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Указатель вне корректного диапазона (C++):

Рандом выводит числа вне набранного диапазона - C++
Ребят, тут такой вот код задачи // lab1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" #include...

В массиве каждый элемент значение которого лежит вне заданного диапазона возвести в квадрат - C++
Ввести одномерный массив A из N элементов. Каждый элемент в массиве чьё значение лежит вне диапазона возвести в квадрат. Массив ...

Определить, есть ли в массиве элементы меньше хотя бы одного из значений T1, T2 и находящиеся вне диапазона - C++
#include "stdafx.h" #include "conio.h" #include <iostream> using namespace std; int _tmain() {setlocale(LC_ALL,"Russian" ); ...

Как получить ссылку на указатель или указатель на указатель в массиве? - C++
В процессе реализации сортировки пузырьком натолкнулся на такую проблему: как поменять значения указателей, передаваемых в функцию. Если...

FindFirstFile -получение корректного имени файла - C++
Всем доброго времени суток.Возникает ошибка при поиске файлов FindFirstFile.Нужно добавить все имена файлов с путем в массив для...

Функция, получающая указатель на обычную функцию, получает указатель на метод класса - C++
Здравтсвуйте. Имеется вопрос по указателям на методы класса. Допустим, есть функция( f ), которая принимает указатель на функцию и...

3
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
27.07.2013, 17:43 #2
C++
1
T p* = &v[0];
это что?
1
gore-lykovoe
32 / 32 / 1
Регистрация: 04.04.2010
Сообщений: 414
27.07.2013, 17:51  [ТС] #3
Цитата Сообщение от Croessmah Посмотреть сообщение
C++
1
T p* = &v[0];
это что?
опечатка, T* p конечно...
0
Croessmah
Ушел
Эксперт CЭксперт С++
13553 / 7704 / 872
Регистрация: 27.09.2012
Сообщений: 19,006
Записей в блоге: 3
Завершенные тесты: 1
27.07.2013, 18:03 #4
Цитата Сообщение от gore-lykovoe Посмотреть сообщение
опечатка, T* p конечно...
тогда после этого
C++
1
p--;
в p содержится адрес элемента v[-1] и поэтому
C++
1
*p = a; // тут p вне корректного диапазона, почему?
аналогично в данном случае
C++
1
v[-1]=a;
1
27.07.2013, 18:03
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2013, 18:03
Привет! Вот еще темы с ответами:

Функция, принимающая указатель и число байт и выделяющая память под указатель - C++
Здравствуйте. Задача легкая, но почему-то завис Нужно написать функцию, принимающую указатель и число байт и выделяющую память под...

Как правильно удалять выделенную память под указатель на указатель? - C++
есть код #include <iostream> #include <conio.h> #include <stdlib.h> #include <time.h> using namespace std; void sort_1(const...

Зачем нужен указатель на указатель при работе с однонаправленным списком? - C++
День добрый. Столкнулся с непониманием этой темы. В частности, совершенно непонятен алгоритм инициализации такого вот списка. Например:...

Реализация двоичных деревьев поиска: Зачем в параметрах функции используется указатель на указатель - C++
Всем привет, встретил в книге такой пример добавления узла в дерево: typedef struct tree { int data; tree *left, *right,...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru