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

Доступ к элементу массива через указатель - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проверки ввода http://www.cyberforum.ru/cpp-beginners/thread653212.html
Подскажите пожалуйста: 1. Как сделать проверку "введено число или не-число" ? 2. Если при вводе используется переменная char, как сделать проверку на количество введенных символов, чтоб если...
C++ Как в Dev C++ передать параметры командной строки Мне необходимо данные брать из файла. Путь к файлу нужно передавать как параметр командной строки argv. Подскажите пожалуйста как это делать в Dev C++ http://www.cyberforum.ru/cpp-beginners/thread653197.html
C++ обработка изображений ( вывод картинки на экран)
День добрый всем. Возник вопрос) Опишу ситуацию, пишу для инста небольшую программу для превращения из цветного изображения постепенно в монохромное. Для начала нужно просто из цвета в чб. Есть...
sizeof() с массивами C++
Почему такие результаты? Размеры у обоих массивов одинаковые а sizeof() показывает у одного 28, а другого 32 int a = {1, 2, 3, 4, 5, 6, 7}; int b = {1, 2, 3, 4, 5, 6, 7}; cout <<...
C++ Разница между приведением типов http://www.cyberforum.ru/cpp-beginners/thread653172.html
Всем пт! Поясните плз разницу между приведениями типов: double (a); (double) a; static_cast <double> (a);
C++ ошибка с передачей через указатели Подскажите в чем ошибка // dynmas_var15_1semestr.cpp: главный файл проекта. #include "stdafx.h" #include <iostream> #include <iomanip> #include <stdlib.h> #include <clocale> #include <time.h> подробнее

Показать сообщение отдельно
maxon887
12 / 12 / 3
Регистрация: 05.06.2012
Сообщений: 280
17.09.2012, 15:16  [ТС]
проблема в том что если пишим допустим pointerArr[3]=21 он загоняет в память в позцию смещённую на 3*величены размера указателя 21. тогда ничего не происходит. если мы пишем допустим pointerArr[0]=21; он меняет само значение указателя на 21. и после этого указатель указывает фиг пойми куда

Добавлено через 1 минуту
попробуйте компильнуть увидете результат

Добавлено через 2 часа 3 минуты
со стандартным вектором проблема та же, он не разрешает обращяться к элементу по индексу
C++
1
2
3
4
5
    vector<int> *pVec=new vector<int>();
    pVec->push_back(2);
    pVec->push_back(3);
    pVec[1]=21;
    cout<<pVec[1]<<endl;
но тут немного веселей, ошибка типа
E:\Qt\Lessons\array\main.cpp:37: error: no match for 'operator=' in '*(pVec + 12u) = 21'
и в последней строчке
E:\Qt\Lessons\array\main.cpp:38: error: no match for 'operator<<' in 'std::cout << *(pVec + 12u)'

Добавлено через 2 минуты
интересно что если создаёшь обьект как
C++
1
2
3
4
5
    vector<int> intVec;
    intVec.push_back(2);
    intVec.push_back(3);
    intVec[1]=21;
    cout<<intVec[1]<<endl;
всё работает
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru