Похоже, вас смущает термин "создан с использованием нового оператора". Поэтому, когда вы пишете:
test_structure *test_realization = new test_structure;
вы сами не создаете test_realization
с помощью оператора new, вы создаете объект, указатель на него возвращается и присваивается test_realization
. Такой объект может быть позже уничтожен оператором delete
. test_realization
- это переменная, которая имеет указатель типа на test_structure
и, как и любая другая переменная, может содержать различные значения, может быть инициализирована при определении, может и не быть. Поэтому, когда кто-то говорит, что указатель «создан с использованием оператора new», он имеет в виду значение, которое вы присваиваете test_realization
, а не переменной test_realization
.
test_structure *test_realization;
...
test_realization = new test_structure; // now test_realization points to object that created by new
test_realization->test_content = 123; // we can use that object
...
delete test_realization; // now object, which was created by new destroyed and memory released
Хотя было бы неплохо определить и всегда инициализировать переменную, это не обязательно.