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

sizeof() с массивами - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
17.09.2012, 11:10     sizeof() с массивами #1
Почему такие результаты? Размеры у обоих массивов одинаковые а sizeof() показывает у одного 28, а другого 32
C++
1
2
3
4
5
    int a[7] = {1, 2, 3, 4, 5, 6, 7};
    int b[][2] = {1, 2, 3, 4, 5, 6, 7};
 
    cout << "sizeof(a) = " << sizeof(a) << endl;    // 28
    cout << "sizeof(b) = " << sizeof(b) << endl;    // 32
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.09.2012, 11:10     sizeof() с массивами
Посмотрите здесь:

оператор sizeof C++
C++ Объясните sizeof()
sizeof массива C++
sizeof C++
Оператор sizeof C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.09.2012, 11:19     sizeof() с массивами #2
Массив b имеет размер [4][2]. Если бы заполнял его правильно, то это было бы очевидным.
ValeryS
Модератор
6374 / 4840 / 441
Регистрация: 14.02.2011
Сообщений: 16,040
17.09.2012, 11:28     sizeof() с массивами #3
Цитата Сообщение от Intel~lect Посмотреть сообщение
Размеры у обоих массивов одинаковые
не не одинаковые
второй массив развернется в
b[0][0]=1,
b[0][1]=2,
b[1][0]=3,
b[1][1]=4,
b[2][0]=5,
b[2][1]=6,
b[3][0]=7,
b[3][1]=0xcccccccc,// мусор
ты же явно указал второй размер [2]
как видишь 8 элементов по 4 байта =32 байта
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1283 / 1217 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.09.2012, 11:46     sizeof() с массивами #4
Цитата Сообщение от ValeryS Посмотреть сообщение
b[3][1]=0xcccccccc,// мусор
Недоинициализированные элементы инициализируются конструктором по умолчанию. В данном случае - нулями.
Intel~lect
 Аватар для Intel~lect
135 / 124 / 2
Регистрация: 03.07.2012
Сообщений: 355
17.09.2012, 12:02  [ТС]     sizeof() с массивами #5
Спасибо
Yandex
Объявления
17.09.2012, 12:02     sizeof() с массивами
Ответ Создать тему
Опции темы

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