利用栈实现整数的十进制转八进制报错,想问一下为啥?

    int m,bjz;
    scanf("%d",&m);
    Stack *a;
    a=Stack_Create(100);
    while(m/8==0){
        Stack_Push(a,m%8);
        m=m/8;
    }
        Stack_Push(a,m%8);
    Stack_Print(a);

你这个入参也没说,不过看你的while条件就不对了,我传入一个8,经过一次循环后m为0,0/8为0,就陷入死循环一直往栈里面push,就会报stack full error了。

while条件应该改为(m/8 != 0)。

 Stack *a;
    a=Stack_Create(100);
    while(e/8!=0){
        Stack_Push(a,e%8);
        e=e/8;
    }
        Stack_Push(a,e%8);
    Stack_Print(a);