使用数组动态内存分配代码的堆栈实现

时间:2019-10-18 19:11:41

标签: c arrays stack dynamic-memory-allocation

** 代码正确运行,但对于索引0和1(45和76)失败 它为堆栈[0]和堆栈[1]打印垃圾编号 我正在使用代码块 你可以加 push(item); 如果您想多次****

#include<stdio.h>
#include<stdlib.h>
int *stack;
int top=-1;
void push(int item);
void pop();
void peek();
int main()
{
    stack=(int*)calloc(top+1,sizeof(int));
    push(45);
    push(76);
    push(24);
    push(5);
    push(67);
    push(98);
    push(1009);
    push(6759);
    while(top!=-1)
    {
        peek();
        pop();
    }
    return 0;
}
void push(int item)
{
    top++;
    realloc(stack,(top+1)*sizeof(int));
    stack[top]=item;
}
void peek()
{
    printf("%d\t%d\n",stack[top],top);
}
void pop()
{
    top--;
    realloc(stack,(top+1)*sizeof(int));
}

0 个答案:

没有答案