PTA出现段错误的原因是什么


#include<stdio.h>
#include<string.h> 
  void search(char *storage)
  {
      int len;
      len=strlen(storage);
      for(int d=0;d<len;d++){
          if(storage[d]!='P'&&storage[d]!='T'&&storage[d]!='A'){
              printf("NO");
          }else{
              printf("YES");
          }
      }
      
  }
  int main(){
      char storage[100]  = {0};
      int n,i;
      scanf("%d",&n);
      for(i=0;i<n;i++){
          scanf("%s",storage[i]);
  }
      for(int j=i;j>=0;j--){
          search(storage[j]);
      }
      return 0;
  }    

img

  char storage[100]  = {0}; 这一句是要创建一个字符串数组是吗,

如果是的,可以改为: char storage[100][100] ;
然后main函数里面第二个for循环j=i,改为j=i-1 ,i-1为字符串数组最后一个字符串元素下标。