Share via


C6334

경고 C6334: 연산자가 있는 식에 sizeof 연산자를 사용하면 예기치 않은 결과가 발생할 수 있습니다.

이 경고는 sizeof 연산자를 잘못 사용했음을 나타냅니다. sizeof 연산자를 식에 적용하면 그 결과는 결과 식의 형식 크기입니다.

예를 들어, 다음 코드에서

     char     a[10];
     size_t   x;

     x = sizeof (a - 1);

결과 식이 더 이상 배열 a에 대한 포인터가 아니라 단순히 포인터이기 때문에 x에 9가 아니라 4 값이 할당됩니다.

예제

다음 코드에서는 이 경고를 발생시킵니다.

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