在写函数装入栈后会发生报错,但是在vs上程序仍能正常运行
传入了数组arr[50]
void push(stack* l1, stack* l2, char arr[])
{
int e = 0;
for (int i = 0; arr[i] != '='; i++)
{
int p, q, c, b;
p = arr[i];
if (p >= 48 && p <= 57)
{
q = p - 48;
(l1->top) = q;
l1->top++;
if (e == 42)//
{
l1->top--;
c = *(l1->top);
l1->top --;
b = *(l1->top);
*(l1->top) = c * b;
l1->top++;
e = 0;
}
if (e == 47)///
{
l1->top--;
c = *(l1->top);
l1->top --;
b = *(l1->top);
*(l1->top) = b / c;
l1->top++;
e = 0;
}
}
if (p == 43 || p == 45)//43->'+' 45->'-'
{
(l2->top) = p;
l2->top++;
}
if (p == 42 || p == 47)//42->'' 47->'/'
e = p;
}
}
Run-Time Check Failure #2 - Stack around the variable 'l1' was corrupted.
以为是数组超出大小曾试过更改判断条件,但是
没能解决
报错消失