Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
akaAxeL
66 / 66 / 59
Регистрация: 14.07.2013
Сообщений: 251
#1

Динамическое выделение памяти

28.04.2016, 09:40. Просмотров 197. Ответов 3
Метки нет (Все метки)

Подскажите пожалуйста почему этот код работает:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
 
using namespace std;
 
 
int main() {
    int *x = new int[0];
    cin >>x[0];
    cin >>x[1];
    cout << x[0] << x[1] << endl;
 
    return 0;
}
Вводим 1 2, выводит 12. Должно же падать так как размер массива нулевой. Компилятор g++
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.04.2016, 09:40
Ответы с готовыми решениями:

Распределение памяти. Динамическое выделение памяти
an-1 an-2 ... a2

Динамическое выделение памяти
У меня есть двумерный булевый квадратный массив. После запуска программы, я...

Динамическое выделение памяти!
Программа должна читать с клавы число и имя(до 15 символов). Данные должны...

Динамическое выделение памяти
Пусть есть класс с полем char *p. Если для поля p выделяется память...

Динамическое выделение памяти
Помогите переделать программу под динамическое выделение памяти #include...

3
SpBerkut
Объявлятель переменных
948 / 274 / 276
Регистрация: 24.09.2011
Сообщений: 1,008
Завершенные тесты: 2
28.04.2016, 09:42 #2
И предупреждений не выдаёт во время работы? Моё дилетантское мнение — выход за границы массива не отлавливается. Стрельба в ногу как она есть.
1
Babysitter
208 / 125 / 50
Регистрация: 23.11.2015
Сообщений: 369
Завершенные тесты: 2
28.04.2016, 09:51 #3
не отлавливается и не должно отлавливаться. гарантий, что оно упадет никто не дает.
если оно упало - значит повезло, нет - все плохо. методом тыка вот так оно у меня упало.
C++
1
2
3
4
5
6
7
8
9
10
    int *x = new int[0];
    x[0] = 1;
    x[1] = 2;
    
    int *y = new int[0];
    y[0] = 5;
    y[1] = 5;
    y[2] = 5;
    
    cout << x[0] << x[1] << endl;
но на другой системе/в другой реализации могло и не упасть.
1
akaAxeL
66 / 66 / 59
Регистрация: 14.07.2013
Сообщений: 251
28.04.2016, 09:57  [ТС] #4
Спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2016, 09:57

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

Динамическое выделение памяти
Всем привет, читал про динам. выделение памяти и тут возник вопрос. Так как для...

Динамическое выделение памяти new
Доброго времени. У меня в программе есть два двумерных динамических массива....


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

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

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