sizeof
Хотя "занимаемая память" - понятие относительное. А объекты типа векторов, хранящие указатели на память в куче? А структуры с выравниванием, в которых между данными есть пробелы, по факту не содержащие данных?
C/C++
Как узнать размер переменной занимаемой в памяти в байтах C++?
Dgeff Shitikov
это куда вводить? В код?
#include <iostream>
using namespace std;
struct Box {
double a;
long b;
short c;
char n;
Box() : a(0), b(0), c(0), n(0) {}
};
template<typename Type>
size_t sizevar(Type value) {
return sizeof(value);
}
int main() {
char x_char = 's';
short x_short = 28;
int x_int = -17;
long x_long = 23;
float x_float = 98.7F;
long long x_llong = -8;
double x_double = 45.12;
Box x_Box;
cout
<< "Size char: " << sizevar(x_char) << '\n'
<< "Size short: " << sizevar(x_short) << '\n'
<< "Size int: " << sizevar(x_int) << '\n'
<< "Size long: " << sizevar(x_long) << '\n'
<< "Size float: " << sizevar(x_float) << '\n'
<< "Size long long: " << sizevar(x_llong) << '\n'
<< "Size double: " << sizevar(x_double) << '\n'
<< "Size Box: " << sizevar(x_Box) << '\n';
cin.get();
return 0;
}
using namespace std;
struct Box {
double a;
long b;
short c;
char n;
Box() : a(0), b(0), c(0), n(0) {}
};
template<typename Type>
size_t sizevar(Type value) {
return sizeof(value);
}
int main() {
char x_char = 's';
short x_short = 28;
int x_int = -17;
long x_long = 23;
float x_float = 98.7F;
long long x_llong = -8;
double x_double = 45.12;
Box x_Box;
cout
<< "Size char: " << sizevar(x_char) << '\n'
<< "Size short: " << sizevar(x_short) << '\n'
<< "Size int: " << sizevar(x_int) << '\n'
<< "Size long: " << sizevar(x_long) << '\n'
<< "Size float: " << sizevar(x_float) << '\n'
<< "Size long long: " << sizevar(x_llong) << '\n'
<< "Size double: " << sizevar(x_double) << '\n'
<< "Size Box: " << sizevar(x_Box) << '\n';
cin.get();
return 0;
}
Юля, ты недалеко уйдешь, если не будешь читать пособия и справочники по C++. Кстати, только описание C++ в его стандарте, без приемов применения, занимает свыше тысячи страниц ;) Понятно, что тебе нужны самые начальные знания, но это всё равно десятки страниц, тут их писать никто не будет. Интересно, на какую специальность вы учитесь, если вам дают C++ -один из самых сложных языков программирования?
И, кстати, в дальнейшем указывай, С нужен или C++ -это разные языки, хотя большинство, но не все, средств С входит в C++, да и то, что есть от C, в C++ часто продублировано более удобными средствами.
И, кстати, в дальнейшем указывай, С нужен или C++ -это разные языки, хотя большинство, но не все, средств С входит в C++, да и то, что есть от C, в C++ часто продублировано более удобными средствами.
Пример:
printf("%d",sizeof(int));
printf("%d",sizeof(int));
Андрей ************
предрекаю варнинг :D
нужно %ld
нужно %ld
Похожие вопросы
- Чем отличается переменная *a от простой a в C++?
- Простой вопрос про динамическую память, new/delete, C++
- Размер динамического массива, передаваемого в функцию в C++.
- C++. Как сделать ввод переменной (размера) на основе которой будет ввод массива?
- Ошибка C# Не используется переменная.
- C++ и динамическая память: это приемлемо?
- Как считать в виде числа данные из файла, в котором даны восемь байт?
- Как в UTF-8 байт последовательности, где англ 1 байт, а рус 2 байта, парсер поймёт что символ русский, а не 2 англ?
- При совершении арифметических операций с переданными в рекурсивную функцию переменными, переменные меняются(Си)
- Как передать матрицу размером n в процедуру? C++