Atributos de ponteiro aplicados ao parâmetro
Cada atributo de ponteiro ([ ref], [ unique], e [ ptr]) tem características que afetam a alocação de memória. A tabela a seguir resume essas características.
Atributo de ponteiro | Cliente | Servidor |
---|---|---|
Referência ([ref]) | O aplicativo cliente deve alocar. | Tratamento especial necessário para ponteiros de nível sem escala [out]. |
Exclusivo ([exclusivo]) | Se for um parâmetro, o aplicativo cliente deverá alocar; se inserido, pode ser nulo. A alteração de nulo para não nulo faz com que o stub do cliente seja alocado; a alteração de não nulo para nulo pode causar órfãos. |
|
Completo ([ptr]) | Se for um parâmetro, o aplicativo cliente deverá alocar; se inserido, pode ser nulo. A alteração de nulo para não nulo faz com que o stub do cliente seja alocado; a alteração de não nulo para nulo pode causar órfãos. |
O atributo [ref] indica que o ponteiro aponta para a memória válida. Por definição, o aplicativo cliente deve alocar toda a memória exigida pelos ponteiros de referência.
O ponteiro exclusivo pode mudar de nulo para não nulo. Se o ponteiro exclusivo for alterado de nulo para não nulo, a nova memória será alocada no cliente. Se o ponteiro exclusivo mudar de não nulo para nulo, a órfã poderá resultar. Para obter mais informações, consulte Memory Orphaning.