Aracılığıyla paylaş


Uyarı C6397

Adres işleci, iyi tanımlanmış kodda işaretçi döndüremiyor null

Açıklamalar

adres işleci işleneninin adresini döndürür. Bu değer hiçbir zaman ile nullptrkarşılaştırılmamalıdır:

  • Bir alanın adresi yalnızca temel işaretçinin olması nullptr ve alanın sıfır uzaklığında olması (&p->field == nullptranlamına gelirp == nullptr) olabilirnullptr. Bu durumda ifade basitleştirilmiş olmalıdır.
  • Diğer durumlarda, kodda tanımlanmamış bir davranış olmadığı sürece birli & işlecin değeri olamaz nullptr (&v == nullptr her zaman false olarak değerlendirilir).

Örnek

bool isNull(int *a)
{  
    return &a == nullptr; // C6397 reported here.
}

Bu sorunu düzeltmek için, birli & kullanımının kasıtlı olup olmadığını bir kez daha denetleyin:

bool isNull(int *a)
{  
    return a == nullptr; // no C6397 reported here.
}

Ayrıca bkz.

C6398