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

Нюансы использования оператора sizeof() - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ 1.функции пользователя http://www.cyberforum.ru/cpp-beginners/thread388356.html
1.. Дано натуральное число N. Получить все такие натуральные K, что N делится на K2 и не делится на K3.
C++ Аналогичная конструкция в stl Здрасте всем,предо мной стоит делема. в С++ я выделяю память так char **mas=new char*; как будет выглядеть аналогичная по работе конструкция в STL ,а именно я имею ввиду векторы. и да как мне сделать этот вектор динамичным ? Сорри уже разобрался)) вот так нада vector<char*> mas; спасибо) http://www.cyberforum.ru/cpp-beginners/thread388343.html
C++ найти производную функции f(x)=sinx(cosx-x^3) по определению (delta=0.1)в точках из интервала [0,5) с шагом 0,5.
найти производную функции f(x)=sinx(cosx-x^3) по определению (delta=0.1)в точках из интервала Добавлено через 25 секунд на с++
Вывод на консоль русских символов C++
wcout должна вроде это делать , но все равно чето не получается. Как граммотно это делается?
C++ В строке между словами вставить вместо пробела запятую и пробел http://www.cyberforum.ru/cpp-beginners/thread388336.html
как в строке между словами вставить вместо пробела запятую и пробел? Добавлено через 2 минуты на с++.
C++ Помогите пожалуйста "error C2143:" и "error C4430:" Здравствуйте. помогите пожалуйста понять как правильно сделать оъявление вот такой штуки... class bst{ struct et{ et* l; et* r; K k; T v; et(et&); подробнее

Показать сообщение отдельно
Evg
Эксперт С++Автор FAQ
 Аватар для Evg
16824 / 5245 / 319
Регистрация: 30.03.2009
Сообщений: 14,121
Записей в блоге: 26
15.01.2016, 12:03     Нюансы использования оператора sizeof()
Цитата Сообщение от Croessmah Посмотреть сообщение
кроссплатформенность
Кроссплатформенность - слишком широкое понятие. Тут даже не тянет на одну из её составляющих. Даже в рамках одного приложения на одной архитектуре полезно использовать sizeof. Типа того что

C
typedef int ttt;
ttt *p = malloc (n * sizeof (ttt));
или

C
typedef int ttt;
ttt *p = malloc (n * sizeof (*p));
Т.е. завели typedef, и работаем с ним через sizeof, чтобы не держать в голове реальный тип. Не говоря уж о том, что базовый тип typedef'а в какой-то момент может измениться

Добавлено через 2 минуты
Цитата Сообщение от thick_int Посмотреть сообщение
Пусть T - это некоторой тип, а t - это переменная типа T.
Может ли когда-нибудь выражение
sizeof(T) != sizeof t
оказаться верным?
Смотря что тут подразумевается под T: его синтаксическое написание или реальный тип переменной

C
#include <stdio.h>
 
void foo (int a[100])
{
  int b[100];
 
  printf ("%d\n", (int) sizeof(a));
  printf ("%d\n", (int) sizeof(b));
}
 
int main (void)
{
  foo (NULL);
  return 0;
}
Код
$ gcc t.c
$ ./a.out
4
400
Добавлено через 5 минут
Ну или для удобства вот так:

C
#include <stdio.h>
 
typedef int T[100];
 
void foo (T a)
{
  T b;
 
  printf ("%d\n", (int) sizeof(T));
  printf ("%d\n", (int) sizeof(a));
  printf ("%d\n", (int) sizeof(b));
}
 
int main (void)
{
  foo (NULL);
  return 0;
}
Код
$ gcc t.c
$ ./a.out
400
4
400
 
Текущее время: 11:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru