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

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

Войти
Регистрация
Восстановить пароль
 
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
#1

Отрицательный размер массива - C++

21.07.2012, 16:16. Просмотров 563. Ответов 3
Метки нет (Все метки)

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <windows.h>
 
using namespace std;
 
int main()
{
    setlocale(LC_ALL, "russian");
 
    int arrSize;
    int *ptr;
 
    cout << "Введите размер массива: ";
    cin >> arrSize;
 
    ptr = new int[arrSize];
 
    delete [] ptr;
 
 
    system("pause");   // во время выполнения не доходит до этой строчки
    return 0;
}
Ради интереса ввел отрицательное число. Понятно что размер массива не может быть меньше нуля.
Хочеться знать что происходит в программе когда пользователь введет отрицательный размер массива? И опасно ли это?
Миниатюры
Отрицательный размер массива  
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.07.2012, 16:16     Отрицательный размер массива
Посмотрите здесь:

Первый отрицательный и минимальный эл массива C++
C++ Удалить из массива последний отрицательный элемент.
Найти максимальный отрицательный элемент массива C++
В двухмерном массиве найти минимальный, отрицательный элемент массива C++
Поменять местами максимальный и последний отрицательный элементы массива C++
C++ Массив: вывести 1й положительный и последний отрицательный элемент массива
Исключить из массива А(n) первый отрицательный элемент C++
C++ Удалить из массива А (20) первый отрицательный элемент
C++ Найти наименьший положительный и наибольший отрицательный элементы массива
C++ Найти 1 положительный,1 отрицательный ,1 четный элемент массива
C++ Каждый второй отрицательный элемент одномерного массива заменить на 0
C++ Замена положительных элементов массива на отрицательный

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,108
21.07.2012, 16:28     Отрицательный размер массива #2
По стандарту new[] принимает size_t, который беззнаковый, так что он просто попросит много памяти.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
21.07.2012, 16:41  [ТС]     Отрицательный размер массива #3
Цитата Сообщение от NoMasters Посмотреть сообщение
попросит много памяти
Значит массив все таки будет создаваться, просто очень большого размера?
NoMasters
Псевдослучайный
1743 / 1086 / 71
Регистрация: 13.09.2011
Сообщений: 3,108
21.07.2012, 16:46     Отрицательный размер массива #4
Да
C++
1
2
3
4
5
6
#include <iostream>
int main()
{
        int i = -1;
        std::cout << (std::size_t)i << std::endl;
}
у меня выдает 18446744073709551615
Yandex
Объявления
21.07.2012, 16:46     Отрицательный размер массива
Ответ Создать тему
Опции темы

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