#29191: Segmentation Fault 怎麼排除QAQ


110703046@g.nccu.edu.tw (hys)


遇到Segmentation fault真的超崩潰q

 

#include<stdio.h>

int main(void)

{

  int stack[1000]={0};

  int tmp, m;

  int *ptr=stack;

  scanf("%d", &m);

  for(int i=0; i<m; i++){

    scanf("%d", &tmp);

    if(tmp==1){

      *ptr=0;

      ptr--;

    } else if(tmp==2){

      printf("%d\n", *ptr);

    } else if(tmp==3){

      if(*ptr==0){

        scanf("%d", &ptr);

      } else if(*ptr!=0){

        ptr++;

        scanf("%d", &ptr);

      }

    }      

  }

  return 0;

}

#29192: Re:Segmentation Fault 怎麼排除QAQ


fire5386 (becaidorz)


stack[1000] 太小 (n <= 100000)

#29193: Re:Segmentation Fault 怎麼排除QAQ


110703046@g.nccu.edu.tw (hys)


stack[1000] 太小 (n <= 100000)

其實是因為開100000也segmentation fault才想說開小一點改成1000但沒有用

#29194: Re:Segmentation Fault 怎麼排除QAQ


cges30901 (cges30901)


遇到Segmentation fault真的超崩潰q


        scanf("%d", &ptr);


ptr是指標,不用&吧