Почему я не могу заменить указатель, переданный на функцию против возвращения? [дублировать]C++

Программы на C++. Форум разработчиков
Anonymous
Почему я не могу заменить указатель, переданный на функцию против возвращения? [дублировать]

Сообщение Anonymous »

У меня есть простой пример для начинающих, и я не понимаю разницы между двумя подходами. Я хочу функцию, которая называется Create , чтобы выделить и вернуть новую структуру. PrettyPrint-Override ">struct Test {
int value;
};

Почему следующее не работает
void create(Test* ref) {
ref = new Test { .value = 2 };
}

Test* test = nullptr;
create(test);
printf("value=%i\n", t->value); // Segmentation fault

Когда это работает просто хорошо?Test* create() {
return new Test { .value = 1 };
}

Test* test = nullptr;
test=create();
printf("value=%i\n", t->value); // ok


Подробнее здесь: https://stackoverflow.com/questions/794 ... urning-one

Вернуться в «C++»