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

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

#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;
}
Другие вопросы по тегам