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

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

Войти
Регистрация
Восстановить пароль
 
nullpointer
46 / 46 / 5
Регистрация: 30.03.2009
Сообщений: 521
#1

Объем памяти выделяемый под unsigned char - C++

04.08.2014, 16:33. Просмотров 347. Ответов 5
Метки нет (Все метки)

Всем привет. Объясните разницу между
C++
1
array = new unsigned char(7*sizeof(unsigned char));
и
C++
1
unsigned char array[7];
Почему при первом варианте sizeof(array) возвращает 4??? СentOS 6.5
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.08.2014, 16:33     Объем памяти выделяемый под unsigned char
Посмотрите здесь:

Классы. Выделение памяти под Char - C++
Программа завершает работу не давая ввести данные "Customer" методом introData(). Подозреваю, что дело в выделение памяти. Подскажите, что...

ООП Классы. Выделение памяти под строку char* - C++
Делал программу на освоение классов и тд. и наткнулся на такую вот штуку.При вводе с клавиатуры переменной Name типа char* программа...

Работа с unsigned char - C++
Есть указатель на тип unsigned char, содержащий в себе 4-ех байтное число и переменная типа long. Как записать в эту переменную значение из...

Hex в unsigned char - C++
Здравствуйте! У меня есть одна проблема, которую не могу решить, ну вот, у меня есть файл в нем hex строка, такого вида: 68 65 6c 6c 6f...

Unsigned char to string - C++
Привет всем. У меня полная непонятица unsigned char c = '1'; std::string ass((char*)c); Unhandled exception at 0x012655D1 in...

unsigned char 0....255?! - C++
Всем привет. Всем известно из разной учебной литературы что unsigned char имеет диапазон значений от 0 до 255. Но почему тогда при этом...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CyberSolver
101 / 74 / 17
Регистрация: 23.07.2014
Сообщений: 686
Записей в блоге: 1
04.08.2014, 16:35     Объем памяти выделяемый под unsigned char #2
nullpointer, ну как-бы размер указателя 4.
CheshireCat
Эксперт С++
2892 / 1241 / 78
Регистрация: 27.05.2008
Сообщений: 3,363
04.08.2014, 16:36     Объем памяти выделяемый под unsigned char #3
Потому что в первом случае array - это указатель. На 32-битной системе sizeof(array) и будет 4.
SatanaXIII
Супер-модератор
Эксперт С++
5602 / 2636 / 242
Регистрация: 01.11.2011
Сообщений: 6,495
Завершенные тесты: 1
04.08.2014, 16:36     Объем памяти выделяемый под unsigned char #4
Цитата Сообщение от nullpointer Посмотреть сообщение
sizeof(array)
array имеет целочисленный тип - четыре байта. sizeof(array) - это размер самого указателя, а не массива.
Andrej
И целого heap'а мало
94 / 55 / 9
Регистрация: 31.07.2014
Сообщений: 291
04.08.2014, 17:20     Объем памяти выделяемый под unsigned char #5
Альзо, если сделать так
на идеонлине
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
std::size_t
func(unsigned char* arr)
{
    return sizeof arr;
};
 
int
main()
{
    unsigned char array[ 7 ];
    std::cout << sizeof array << std::endl;
    std::cout << func(array) << std::endl;
};
То можно чуток больше понять эту ещё сяшную магию указателей.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.08.2014, 18:32     Объем памяти выделяемый под unsigned char
Еще ссылки по теме:

Передача в функцию unsigned char [ ] - C++
Заполняю массив unsigned char sizeBuf; for (int i = 0; i &lt; 4; i++){ sizeBuf =...

CRC16, Unsigned Char и Полином - C++
CRC Verifying code #define UCHAR unsigned char #define UWORD unsigned int UWORD code CRC_TABLE={ ...

Конвертация string to unsigned char - C++
День всем добрый! Каким образом можно произвести перевод значения переменной типа &quot;string&quot; в переменную типа &quot;unsigned char&quot;? В...

синтаксис указателя на unsigned char - C++
РЕбята, не могу сообразить. Смотрите, этот код компилится: char* array ; array = &quot;dddddddddd&quot;; Теперь нулевой элемент...


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

Или воспользуйтесь поиском по форуму:
Jupiter
Каратель
Эксперт С++
6553 / 3973 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
04.08.2014, 18:32     Объем памяти выделяемый под unsigned char #6
Цитата Сообщение от nullpointer Посмотреть сообщение
C++
1
unsigned char array[7];
7 char-ов

Цитата Сообщение от nullpointer Посмотреть сообщение
C++
1
array = new unsigned char(7*sizeof(unsigned char));
указатель, да и еще на один char
Yandex
Объявления
04.08.2014, 18:32     Объем памяти выделяемый под unsigned char
Ответ Создать тему
Опции темы

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