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

Размер памяти под тип. - C++

Восстановить пароль Регистрация
 
noob123
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 33
05.05.2010, 10:25     Размер памяти под тип. #1
Добрый день. Возник маленький вопрос, пусть у нас есть некоторая строка string, содержащая какой нибудь тип данного, например "int". Так вот как мне узнать какой размер памяти занимает данный тип.
Пробовал sizeof, но он как я понял со строкой не работает..
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
 Аватар для oxotnik
1584 / 1061 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
05.05.2010, 10:26     Размер памяти под тип. #2
Цитата Сообщение от noob123 Посмотреть сообщение
некоторая строка string, содержащая какой нибудь тип данного, например "int".
Это как понять???
строка она и в африке строка...
в чем смысл задачи? для чего нужно узнать размер?
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.05.2010, 10:27     Размер памяти под тип. #3
noob123, если символы однобайтовые, то строка занимает размер равный своей длине +1.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.05.2010, 10:30     Размер памяти под тип. #4
Цитата Сообщение от oxotnik Посмотреть сообщение
Это как понять???
У него в строке записано символьное имя типа. Прямо так: "int".
Vourhey
Почетный модератор
6468 / 2243 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.05.2010, 10:31     Размер памяти под тип. #5
а, вон оно как...ну ты жоский тип
Никаки. Читать строку, определять, какой там тип записан и вызывать sizeof для этого типа.
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.05.2010, 10:31     Размер памяти под тип. #6
Цитата Сообщение от Vourhey Посмотреть сообщение
если символы однобайтовые, то строка занимает размер равный своей длине +1.
Ему не длина строки нужна, а длина инта, дабла, чара и чего ещё попросит юзверь.
noob123
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 33
05.05.2010, 10:33  [ТС]     Размер памяти под тип. #7
Ну в смысле у нас есть строка хранящая тип данного, например, string[] = "long int"; Мне нужно узнать объем памяти под тип, который строка имеет значением, ну т.е. равносильное вот этому sizeof(long int)
taras atavin
Ушёл с форума.
 Аватар для taras atavin
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.05.2010, 10:36     Размер памяти под тип. #8
Типов не так много и они все должны быть известны на этапе компиляции. Так что пиши разбор строки, определяй, какой именно тип в ней записан и переходи на соответствующий return sizeof.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.05.2010, 11:25     Размер памяти под тип.
Еще ссылки по теме:

C++ Как узнать размер массива в динамической памяти?
Realloc не хочет увеличивать размер памяти C++
C++ Где хранить размер блока памяти?

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

Или воспользуйтесь поиском по форуму:
easybudda
Модератор
Эксперт С++
 Аватар для easybudda
9373 / 5423 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
05.05.2010, 11:25     Размер памяти под тип. #9
noob123,
C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <map>
#include <string>
...
std::map<std::string, size_t> ts;
ts["int"] = sizeof(int);
ts["double"] = sizeof(double);
// etc...
...
std::string type_name("int");
std::map<std::string, size_t>::const_iterator found;
size_t type_size = ( ( found = ts.find(type_name) ) == ts.end() ) ? 0 : found->second;
// type_size получает значение 0 в случае, если заданное имя типа не найдено, или  соответствующий имени типа размер. Ну должно бы, не проверял...
Yandex
Объявления
05.05.2010, 11:25     Размер памяти под тип.
Ответ Создать тему
Опции темы

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