Ошибка с инициализацией переменной

177
19 декабря 2018, 04:30

Я не могу понять почему компилятор выдает мне ошибку Ошибка C4700 использована неинициализированная локальная переменная "TempNode". Вот мой код:

void PushFront(T Value)
    {
        Node<T>* TempNode;
        TempNode->NextNode = PtrBegin->NextNode;
        TempNode->Value = PtrBegin->Value;
        PtrBegin->Value = Value;
        PtrBegin->NextNode = (Node<T>*)malloc(sizeof(Node<T>));
        PtrBegin->NextNode = TempNode->NextNode;
        PtrBegin->Value = TempNode->Value;
    }

Реализация Node:

struct Node
    {
    public:
        Node* NextNode;
        TypeNode Value;
        Node() : NextNode((Node<TypeNode>*)malloc(sizeof(Node<TypeNode>))), Value(NULL) {}
        Node(TypeNode Value) : NextNode(new Node<TypeNode>), Value(Value) {}
        ~Node()
        {
            delete NextNode;
        }
    };
Answer 1
void PushFront(T Value)
{
    Node<T>* TempNode;
    // чему здесь равен TempNode?
    TempNode->NextNode = PtrBegin->NextNode;
    ...
    // зачем он вообще здесь нужен?

Последующие присвоения разных значений одним и тем же переменным (PtrBegin->Value и PtrBegin->NextNode) в соседних строках - бессмысленны, не говоря уже о malloc.

READ ALSO
C++ Firebase. Какую библиотеку выбрать?

C++ Firebase. Какую библиотеку выбрать?

Возникла необходимость работы с Fireabase в C++

172
Помощь в написании шаблонной функции C++

Помощь в написании шаблонной функции C++

прошу опытных товарищей подсказать как лучше реализовать шаблонную функциюПредположим у меня есть такая структура:

157
Ошибка совместимости типов

Ошибка совместимости типов

Я хочу объявить тип long long double , но компилятор выдает ошибку, так как для него это все равно,что объявление int doubleМожно ли все-таки объявить...

147