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

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

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

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

17.09.2012, 11:10. Просмотров 1368. Ответов 4
Метки нет (Все метки)

Почему такие результаты? Размеры у обоих массивов одинаковые а 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( char * ) & sizeof(char) C++
sizeof() C++
C++ Sizeof глючит ?
Sizeof C++
Немного о sizeof C++
C++ Fwrite (buffer , sizeof(char), sizeof(buffer), pFile)
C++ Sizeof(.) или constexpr size_t tmp = sizeof(.)
Sizeof структуры C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Deviaphan
Делаю внезапно и красиво
Эксперт C++
 Аватар для Deviaphan
1285 / 1219 / 50
Регистрация: 22.03.2011
Сообщений: 3,744
17.09.2012, 11:19     sizeof() с массивами #2
Массив b имеет размер [4][2]. Если бы заполнял его правильно, то это было бы очевидным.
ValeryS
Модератор
6453 / 4919 / 451
Регистрация: 14.02.2011
Сообщений: 16,320
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
1285 / 1219 / 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() с массивами
Ответ Создать тему
Опции темы

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