经典指数          
原因
699
浏览数
0
收藏数
 

以下代码段有问题的是()
  • <pre>void func1(char *e){
      char *p1;
      p1=malloc(100);
      sprintf(p1,error:"%s'.",e);
      local_log(p1);
      }
    </pre>
  • <pre>
    int func2(char *filename)
      {
        FILE *fp;
        int key;
        fp=fopen(filename,"r");
        fscanf(fp,"%d",&key);
        return key;
       }
    </pre>
  • <pre>
    void func3(char *info){
      char *p,*pp;
      p=malloc(100);
      pp=p;
      free(p);
      sprintf(pp,*info:"%s'.",info);
      free(pp);
      }
    </pre>
  • 选项全部正确

     举报   纠错  
 
切换
1 个答案
A、首先 malloc的用法也不对, malloc默认返回的是空指针void* 需要程序猿在malloc 前面指定类型,比如本例 p1= (char*) malloc(100)。其次在函数内部malloc的内存需要 free B 、明显的没有关闭文件流 C、free两次 程序会出错
 
切换
撰写答案
扫描后移动端查看本题