Переменная необъявленная в функции

Привет у меня есть проблема с глобальным указателем, который недопустим в функции.
Вот мой код

#include <iostream>

using namespace std;

void push_l(int n);struct elem{
int key;
elem *next;
} *left=NULL,*right=NULL;
void push_l(int n){
elem *p=left;
left=new elem;
left->key=n;
left->next=p;
if (right==NULL)right=left;
}

int main(){
push_l(5);
system "pause";
return 0;
}

Это одно из сообщений об ошибках, которые я получаю — В функции void push_l (int) осталось недооцененным

0

Решение

Это то, что вы получаете за using namespace std; (std имеет left тоже). И тебе даже не нужно iostream, Ссылка на left неоднозначно.

Сделай это:

#include <cstdlib>

struct elem{
int key;
elem *next;
} *left=NULL,*right=NULL;

void push_l(int n){
elem *p=left;
left=new elem;
left->key=n;
left->next=p;
if (right==NULL)right=left;
}

int main(){
push_l(5);
std::system("pause");
return 0;
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]