The s pointer itself is on the stack.
Everything else is on the heap.
And s->c = 'a'; is a bug.
The s pointer itself is on the stack.
Everything else is on the heap.
And s->c = 'a'; is a bug.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.