Ваш член структуры на самом деле не строка, а указатель. Вы можете установить указатель на другую строку с помощью
o.text = "Hello World";
Но вы должны быть осторожны, строка должна жить как минимум столько же, сколько объект. Использование malloc, как показано в других ответах, является возможным способом сделать это. Во многих случаях более желательно использовать массив char в структуре; то есть вместо
struct foobar {
...
char *text;
}
использование
struct foobar {
...
char text[MAXLEN];
}
, что, очевидно, требует, чтобы вы знали максимальную длину строки.