Żeby nie było żadnych wycieków pamięci i chcesz żeby pamięć tablicy była przydzielana dynamicznie zastosuj odpowiedni konstruktor który przydzieli pamięć i przypiszę do niej wartość, użycie operatora new w konstruktorze wymaga odpowiedniego destruktora z operatorem delete. Do zmieniania wartości tablicy możesz zdefiniować funkcje wewnątrz structa. Przecież jest on traktowany jako klasa z publicznym dostępem do pól i metod składowych. Przedmówca wytłumaczył już czemu wychodzą takie dziwne znaki, przez co nie muszę tego tłumaczyć.
O to przykład jak można skonstruować taką struktura z dynamiczna tablica.
#include<iostream>
#include<cstring>
struct Text{
char* wsk;
Text(const char* tekst)
{
wsk = new char[strlen(tekst)+1];
strcpy(wsk,tekst);
}
~Text()
{
delete[] wsk;
}
};
int main()
{
Text tekst("TEKST KTORY CHCE ZAPISAC");
std::cout << tekst.wsk;
return 0;
}