///
Analise o seguinte programa escrito em linguagem C conforme o padrão ANSI C:
#include <stdio.h>
#include <stdlib.h>
struct No {
int valor;
struct No *prox;
};
int main() {
struct No *a = (struct No*) malloc(sizeof(struct No));
struct No *b = (struct No*) malloc(sizeof(struct No));
struct No *c = (struct No*) malloc(sizeof(struct No));
a->valor = 10;
b->valor = 20;
c->valor = 30;
a->prox = b;
b->prox = c;
c->prox = NULL;
struct No *p = a->prox;
free(b);
printf("%d\n", p->valor);
free(a);
free(c);
return 0;
}Considerando o comportamento definido pelo padrão ANSI C para alocação e liberação de memória dinâmica, assinale a alternativa que descreve corretamente a execução do programa.