Переменная необъявленная в функции
Привет у меня есть проблема с глобальным указателем, который недопустим в функции. Вот мой код
#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) осталось недооцененным
1 ответ
Решение
Это то, что вы получаете за 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;
}