Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.05.2012, 21:44   #1
M_arisha
Пользователь
 
Регистрация: 02.12.2011
Сообщений: 24
По умолчанию Cтек в С

В следущем коде такое вот предупреждение:

Warning 1 warning C4996: 'scanf': This function or variable may be unsafe. Consider using scanf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. c:\users\user\favorites\documents\v isual studio 2008\projects\num10.steck\num10.ste ck\steck.cpp 27

Подскажите, пожалуйста, как это исправить, и, если можно, каким образом преобразовать стек в двунаправленную очередь.

Код:
#include <stdio.h>
#include <stdlib.h>

#define MAX 10

int *p;   /* указатель на область свободной памяти */
int *tos; /* указатель на вершину стека */
int *bos; /* указатель на дно стека */
int e;

void push(int i);
int pop(void);

void main()
{
	p = (int *) malloc(MAX*sizeof(int)); /*память для стека */
  if(!p) {
    printf("Error\n");
    exit(1);
  }
  tos = p;
  bos = p + MAX-1;
  printf("Enter items\n");
  for(int i=1;i<=MAX;i++)
  {
	  scanf("%d",&e);
	  do
	  {
		  push(e);
	  } while(!MAX);
  };
}
/* Занесение элемента в стек. */
void push(int i)
{
  if(p > bos) {
    printf("Stek polon\n");
    return;
  }
  *p = i;
  p++;
}

/* Получение верхнего элемента из стека. */
int pop(void)
{
  p--;
  if(p < tos) {
    printf("Stek pust\n");
    return 0;
  }
  return *p;
}
M_arisha вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц