typedef struct tag{
  char* str;
} A;

저 구조체를
A* b;

라고 선언하고, b구조체 포인터 변수안에는 문자열 저장할 str 있는데
str 에 문자열이 들어있다고 치고

그런데 메모리에서 완전히 구조체 포인터 변수b를 날릴려면

free(b->str);
free(b);

이렇게 해야 완전이 메모리에서 깨긋하게 되는건가요??
아니면
free(b); 이렇게만해두
그냥 싹다 지워져버리는건가요?