И это всё МОЁ
func1()
{
char *x;
...

x = "ABC";
...

func2(x);
}

вопрос к знатокам:
правомерно ли такое присваивание/использование указателя x? во время присвоения строка создается статически на стеке или «непонятно где»?

пока в таком виде «все работает» (ну как говориться, возможно, пока... :о)

или надо принудительно выделять память, инициализовать, и только потом присваивать значение указателю?

п.с. просто пока быстро тут ваяю идею, пока из головы не выветрилась...