Depende de qual tipo o buffer
é.
O mais provável buffer
é um ponteiro para o início do buffer. A declaração de estilo C para ele pode ser struct stackElement *buffer;
ou algo semelhante (observe o asterisco!).
Nesse caso:
-
p &buffer
imprime o endereço onde o próprio ponteiro está armazenado (por exemplo, "o endereço do endereço do buffer") -
p buffer
deve imprimir o valor da variávelbuffer
pointer, que é o endereço do buffer. -
p *buffer
deve imprimir o conteúdo do buffer.
Se buffer
for algum tipo de estrutura e não um ponteiro (por exemplo, a declaração C pode ser struct stackElement buffer;
sem asterisco), então:
-
p &buffer
imprime o endereço onde a estrutura está, ou seja, o endereço do buffer -
p buffer
imprime o conteúdo dessa estrutura (= se for uma pilha, provavelmente o primeiro elemento da pilha) -
p *buffer
é um erro.