Автор Максим Фролов задал вопрос в разделе Другие языки и технологии
Работа указателей с массивами в C++ и получил лучший ответ
Ответ от
int *ptri=0: ты создаёшь указатель, и присваиваешь ему 0, т. е. nullptr. А потом пытаешься разыменовать нулевой указатель.
Ещё проблема тут: *ptri++. У инкремента приоритет выше, чем у разыменования указателя. Т. е. это *(ptri++)
> Это та еще жесть
Это элементарщина.
> кто нибудь, помогите разобраться, потому что в инете и в книге годной инфы нет
Всё есть. Просто кто-то не любит разбираться.
> int* ptra=&a; это означает, что мы берем адрес из оперативки, где находится переменная а, и присваиваем этот адрес указателю
Верно.
> мы можем сделать для него указатель *ptra=a; то если нам надо вывести, скажем на экран элемент с индексом 4, то я должен написать cout<<*(ptra+4); Верно?
Достаточно просто cout << a[4];
> for(int *ptri=0;*ptri<*ptrn;*ptri++){
> cin>>ptra[*ptri];
К чему такие извраты?
Иван Гончарук
(420)
Он наверно имел ввиду использовать адресную арифметику, а не счетчики разыменовывать?
Пример:
const int n = 10;
int a[n];
for (auto e = a; e < a + n; ++e) {
std::cin >> *e;
}
for (auto e = a; e < a + n; ++e) {
std::cout << *e;
}
int n=10;
int* ptrn=&n;
int a[*ptrn];
Так делать нельзя! Размер массива должен быть константой времени компиляции, а вы используете значение переменной.
Про инициализацию счетчика в цикле уже сказали выше.
Я бы еще повозмущался про using namespace std; и про сырые указатели в C++, но кого это из преподов волнует, они C++ и C считают одним и тем же.
А вообще странные задания, бессмысленные и ничему не учат, только путают.
да зачем нужны эти указатели ?? C++. Зачем нужны указатели? почему не обойтись без простой переменной??
Указатель содержит адрес первого байта объекта в памяти, тип указателя, говорит о том сколько
подробнее...
Бинарный поиск C#
Двоичный поиск работает на _сортированном массиве_. У Вас генерируется просто набор.
Что
подробнее...
Задача по языку Си
Фактически, у вас задача на нахождение максимального элемента в последовательбности, только
подробнее...
работа с abc pascal. массивы
Массивы - это совокупности однотипных элементов. Характеризуются они следующим:
каждый
подробнее...
Как в C++ объявить массив с количеством элементов, хранящимся в переменной?
Если число не является константой, то так:
cin >> N; // Это чисто для примера, что N не
подробнее...
C++: И снова передача двумерных массив в функцию.. . каким макаром это сделать?
Объясняю: массив - это ряд одинаковых значений (нет, я не Очевидность 🙂 ). Имя массива в C/C++
подробнее...
Хочу научиться программировать. Подскажите, с чего начать???
В настоящее время в мире создано 8512 компьютерных языков разного уровня и направления.
На
подробнее...
Метод исключения Гаусса без/c частичным выбором ведущего элемента(Pascal)
Хотелось бы помочь, но мейл, как всегда, съел разметку с параметрами массивов, да и с именами
подробнее...
Как научится программировать на C++?
вы решили изучить язык, поэтому выбрали крайне сложную задачу.
звучит примерно так - решил
подробнее...
С++, объект класса, экземпляр класса, какой тип переменной хранит экземпляр класса? (экземпляр это что? Word, lpstr..?)
Класс это то же самое что старинная структура данных, только теперь он хранит
еще и методы
подробнее...
Программирование С++ Что такое Динамические массивы?
Ну вообще даже в Википедии есть объяснение этой технологии.
Грубо говоря это карман, размер
подробнее...
Можно ли в Excel просуммировать ячейки в столбце через одну?
В зависимости от Вашего опыта работы с Excel. Пусть необходимо суммировать через одну ячейку все
подробнее...
что такое прикладное программы
Прикладная программа (приложение, application program) — программа, предназначенная для решения
подробнее...