Dela via


Varning C33001

Varianten 'var' rensades när den var oinitialiserad (uttrycket '')

Anmärkningar

Den här varningen utlöses när en oinitierad VARIANT skickas till ett API, till exempel VariantClear, som rensar objektet. Initiera VARIANT innan du skickar den till dessa funktioner så att den kan rensas korrekt.

Den här varningen gäller för följande funktioner:

  • VariantClear
  • PropVariantClear
  • VariantCopy
  • VariantCopyInd
  • VariantChangeType
  • VariantChangeTypeEx
  • DestroyPropVariant

Kodanalysnamn: VARIANTCLEAR_UNINITIALIZED

Exempel

Följande kod orsakar varning C33001:

#include <Windows.h>

HRESULT foo(bool some_condition)
{
    VARIANT var;

    if (some_condition)
    {
        //...
        VariantInit(&var);
        //...
    }

    VariantClear(&var);  // C33001
}

I det här exemplet korrigeras varningen genom att anropa VariantClear först när var har initierats:

#include <Windows.h>

HRESULT foo(bool some_condition)
{
    VARIANT var;

    if (some_condition)
    {
        //...
        VariantInit(&var);
        //...
        VariantClear(&var);  // OK
    }
}

Se även

C33004
C33005