Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
AVATAR
9 / 9 / 6
Регистрация: 27.07.2014
Сообщений: 266
1

Указатели на указатели с числами. Почему можно присвоить число в 4-ый элемент, если массив из 2 элементов?

30.01.2016, 13:59. Просмотров 253. Ответов 5
Метки нет (Все метки)

Есть массив
C++
1
2
3
4
5
int **mas;
mas=new int*[5]; // выделил место под пять строк, верно ?
mas[0]=new int[2];// выделил для первой строки матрицы два столбца, верно ??
    
mas[0][4]=rand();
То есть я создал 5 строк на указатели типа int
для первой строки создал массив из 2 элементов

Почему я могу присвоить число в 4 ый элемент и компилятор не выдает ошибку, если в 0 строке - массив из 2 элементов ???

Со строками вроде понял идею указатель на указатель, а вот с числами не понимаю
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.01.2016, 13:59
Ответы с готовыми решениями:

Массив на 10 элементов нужно заполнить случайными числами через указатели
Здравствуйте, помогите новичку решить несложную задачу. Только начал осваивать...

Отсортировать массив и вывести на экран (массивы и указатели на указатели)
Даны массивы F-фамилий студентов и S-результаты сессии (5 оценок) , причем s-...

Зачем учить указатели, если можно использовать вектор?
Не могу понять, зачем учить указатели если в большинстве случаев для выделения...

Указатели и указатели на указатели, а также типы данных
Недавно начал изучать Си, перешел с Delphi. Много непонятного и пока процесс...

Указатели: определить число отрицательных элементов в массиве и вывести их адреса
Привет всем, я хотел бы узнать как решается данная задачка: Написать...

5
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
30.01.2016, 14:08 2
Цитата Сообщение от AVATAR Посмотреть сообщение
Почему я могу присвоить число в 4 ый элемент и компилятор не выдает ошибку
Почему я могу выстрелить себе в ногу, а Путин даже не предупреждает об этом?
1
AVATAR
9 / 9 / 6
Регистрация: 27.07.2014
Сообщений: 266
30.01.2016, 14:10  [ТС] 3
Элемент присваивается и выводится, хотя не должно быть такого
0
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
30.01.2016, 14:14 4
Цитата Сообщение от AVATAR Посмотреть сообщение
Элемент присваивается и выводится
Просто Вам не везет.
хотя не должно быть такого
кто сказал?
Вы пишите за пределами выбранного участка памяти,
так что то там и как будет - дело реализации, платформы и случая.

mas[0][4] будет преобразовано в *(*(mas+0)+4),
так что Вы просто "гуляете" по памяти, "мусорите" там.
Вам никто это не запрещает делать, если место Вам доступно.
1
AVATAR
9 / 9 / 6
Регистрация: 27.07.2014
Сообщений: 266
30.01.2016, 14:20  [ТС] 5
Цитата Сообщение от Croessmah Посмотреть сообщение
Элемент присваивается и выводится
Просто Вам не везет.
Цитата Сообщение от Croessmah Посмотреть сообщение
Элемент присваивается и выводится
Просто Вам не везет.
хотя не должно быть такого
кто сказал?
Раньше в таких случаях вылетала ошибка, мол выход за пределы памяти или вроде того) Компилятор запрещал
0
Croessmah
++Ͻ
14611 / 8365 / 1576
Регистрация: 27.09.2012
Сообщений: 20,561
Записей в блоге: 2
Завершенные тесты: 1
30.01.2016, 14:26 6
Цитата Сообщение от AVATAR Посмотреть сообщение
Раньше в таких случаях вылетала ошибка
вылетает - высшая степень везения
Цитата Сообщение от AVATAR Посмотреть сообщение
Компилятор запрещал
нет, не запрещал. Вылетала же уже в рантайме.
1
30.01.2016, 14:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.01.2016, 14:26

Через указатели на указатели посчитать сумму двух чисел и записать в третье
1. Через указатели на указатели посчитать сумму двух чисел и записать в третье....

Есть три переменные. Используя указатели на указатели, поменять значение максимальной и минимальной переменной
Мой код. #include <iostream> #include <stdlib.h> #include<iomanip>...

Указатели . Удалить из одномерного массива элемент с заданным номером, добавить К элементов, начиная с заданного номера
Сформировать одномерный массив. Удалить из него элемент с заданным номером, ...


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

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

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