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

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

Войти
Регистрация
Восстановить пароль
 
noob123
0 / 0 / 0
Регистрация: 22.11.2009
Сообщений: 33
#1

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

05.05.2010, 10:25. Просмотров 568. Ответов 8
Метки нет (Все метки)

Добрый день. Возник маленький вопрос, пусть у нас есть некоторая строка string, содержащая какой нибудь тип данного, например "int". Так вот как мне узнать какой размер памяти занимает данный тип.
Пробовал sizeof, но он как я понял со строкой не работает..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
05.05.2010, 10:25     Размер памяти под тип.
Посмотрите здесь:

1.Написать программу, вычисляющую размер памяти, отводимой компилятором под тип int - C++
#include "iostream.h" int main() { int x; cin>>x; cout<<"razmer tipa int"<<sizeof(int)<<sizeof(x)<<"\n"; return 0; } ...

Размер и выделение памяти под открытие файла. - C++
Всем привет. Уважаемые знатоки, вопрос в следующем) Значит задача такая, есть некий файл бинарный. Размер не известный...

Программа, вычисляющая размер памяти, отводимой под символ - C++
Написать программу, вычисляющую размер памяти, отводимой под символ \а (звуковой сигнал). какой тип для этого нужно использовать (int,...

Тип, размер и описание переменных в коде. - C++
Помогите описать все переменные по этой программе: Пожалуйста 1-Тип 2-Размер 3-Описание #include <iostream> #include...

Размер области памяти - C++
Добрый вечер. Подскажите, пожалуйста, почему при выполнении данной программы объем памяти по каждой строке равен 4? Ведь по идее...

Размер ячеек памяти - C++
Каков размер ячеек памяти? Вычитал, что одна ячейка равна одному байту. Но тут возник вопрос: Предположим, в памяти хранится int...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
oxotnik
1589 / 1066 / 33
Регистрация: 21.08.2008
Сообщений: 4,545
Записей в блоге: 1
05.05.2010, 10:26     Размер памяти под тип. #2
Цитата Сообщение от noob123 Посмотреть сообщение
некоторая строка string, содержащая какой нибудь тип данного, например "int".
Это как понять???
строка она и в африке строка...
в чем смысл задачи? для чего нужно узнать размер?
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.05.2010, 10:27     Размер памяти под тип. #3
noob123, если символы однобайтовые, то строка занимает размер равный своей длине +1.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
05.05.2010, 10:30     Размер памяти под тип. #4
Цитата Сообщение от oxotnik Посмотреть сообщение
Это как понять???
У него в строке записано символьное имя типа. Прямо так: "int".
Vourhey
Почетный модератор
6477 / 2252 / 123
Регистрация: 29.07.2006
Сообщений: 12,635
05.05.2010, 10:31     Размер памяти под тип. #5
а, вон оно как...ну ты жоский тип
Никаки. Читать строку, определять, какой там тип записан и вызывать sizeof для этого типа.
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
Ушёл с форума.
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++
Подскажите, пожалуйста, как узнать колл-во байт между двумя указателями? Т.е. к примеру: int *a = new int; int *b = new int; int...

Как уменьшить размер выделенной памяти - C++
Доброе утро! пишет: переопределение формального параметра "text" :( подскажите пожалуйста как уменьшить размер выделенной памяти под...

Realloc не хочет увеличивать размер памяти - C++
//----H----------------------------------------------------------------------- #ifndef Realloc_stH #define Realloc_stH ...

Где хранить размер блока памяти? - C++
Пишу менеджер памяти. Храню размер в первых 4x байтах выделенной памяти. В коде все вызовы new заменяю на следующее: //Iterator...


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

Или воспользуйтесь поиском по форуму:
easybudda
Эксперт CЭксперт С++
9468 / 5481 / 927
Регистрация: 25.07.2009
Сообщений: 10,505
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     Размер памяти под тип.
Ответ Создать тему
Опции темы

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