Aracılığıyla paylaş


C28741

uyarı C28741: İşlevde eklenmeyen arabellek

Bu uyarı, işlev parametresi olarak geçirilen veya işlev tarafından döndürülen bir arabelleğe Microsoft Kaynak Kodu Ek Açıklama dili (SAL) ile ek açıklama eklenmesi gerektiğini gösterir. Statik analiz araçları, arabellek taşmalarını algılamak için bu tür ek açıklamaları kullanabilir.

Şu anda bu uyarıyla yalnızca sabit olmayan dize arabellekleri tanılanmıştır. İdeal olarak, işlev parametresi olarak geçirilen veya işlevler tarafından döndürülen tüm arabelleklere ek açıklama eklenmelidir. wchar_t veya karakter dizileri bu uyarı için adaydır. İmzasız karakterler şu anda değil.

Örneği

Aşağıdaki kod bu uyarıyı oluşturur.

  int foo( LPTSTR buffer, size_t cch );

Aşağıdaki kod örneği, çağrılan işlevin arabelleğe yazıldığını ve arabelleğin NULL olamayacağını belirtmek için SAL ek açıklaması _Out_writes_ kullanarak bu uyarıyı önler. Ek açıklama, arabelleğin cch öğelerinin olduğunu gösterir.

    int foo(_Out_writes_(cch) LPTSTR buffer, size_t cch );