Поделиться через


C6334

Предупреждение C6334: оператор sizeof применяется к выражению с оператором. Это может вызвать непредвиденные результаты.

Это предупреждение означает неправильное использование оператора sizeof. Оператор sizeof при применении к выражению выдает размер типа результирующего выражения.

Рассмотрим следующий пример кода.

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

x будет присвоено значение 4, а не 9, поскольку результирующее выражение является не указателем на массив a, а просто указателем.

Пример

Это предупреждение создается следующим кодом:

void f( )
{   
  size_t x;
  char a[10];

  x= sizeof (a - 4);
  // code...
}

Для устранения этого предупреждения используйте следующий код:

void f( )   
{
  size_t x;
  char a[10];

  x= sizeof (a) - 4;
  // code...
} 

См. также

Ссылки

sizeof Operator