a* next=new a;
Ваша структура a
имеет член с именем next
, который инициализируется по умолчанию как new
. Каждый экземпляр a
, создаваемый вашей программой, будет иметь член класса с именем next
, который инициализируется new
. Вот как работают классы и инициализаторы членов класса по умолчанию.
Этот член, как я уже сказал, является другой структурой a
. Который, конечно, также имеет член с именем next
, который будет инициализирован new
. Как и каждый экземпляр struct a
, конечно.
И второй struct a
также будет иметь член next
, как и все a
s, который будет инициализирован new
. У этого третьего экземпляра a
будет собственный next
, который будет инициализирован new
.
И так до бесконечности, пока на вашем компьютере не закончится память, создавая бесконечную цепочку struct a
s.
Непонятно, каковы ваши намерения, но это отвечает на вопрос, почему ваша программа дает сбой.