Avviso C26486

Non passare un puntatore che potrebbe non essere valido (dangling) come parametro a una funzione.

void use(int*);

void ex1()
{
    int* px;
    {
        int x;
        px = &x;
    }

    use(px);  // px is a dangling pointer
}

Osservazioni:

Le linee guida per la durata delle linee guida di base di C++ delineano un contratto che il codice può seguire, che consentirà una perdita di memoria statica più approfondita e il rilevamento del puntatore. Le idee di base alle linee guida sono:

  • Non dereferenziare mai un puntatore null non valido (dangling) o null noto
  • Non restituire mai (parametro restituito o out formale) qualsiasi puntatore da una funzione.
  • Non passare mai un puntatore (dangling) non valido a qualsiasi funzione.

Nome dell'analisi del codice: LIFETIMES_FUNCTION_PRECONDITION_VIOLATION

Vedi anche