#7752: __RE


earfish90807 (Lohaz)

學校 : 國立雲林科技大學
編號 : 32871
來源 : [111.253.221.198]
最後登入時間 :
2015-08-18 14:08:27
a009. 解碼器 -- ACM 458 | From: [140.125.206.50] | 發表日期 : 2013-05-16 16:05

#include<stdio.h>
#include<string.h>
char trans(char c[],int i);

main (void)
{
    int i=0;
    char c[100];
    while (strcmp(gets(c), "") != 0)
    {
        i=0;
        while (c[i] != '\0')
        {
            printf("%c",trans(c,i));
            i++;
        }
        printf("\n");
        for(i=0;i<100;c[i]='\0',i++);  
    }
}

char trans(char c[],int i)
{
    return c[i] - 7;
}
 
RE (SIGSEGV)
執行時期錯誤
記憶體區段錯誤!  Segmentation fault 
求解 !! 
 
#7753: Re:RE


kktest (test)

學校 : 不指定學校
編號 : 32879
來源 : [111.249.90.74]
最後登入時間 :
2013-05-19 02:06:08
a009. 解碼器 -- ACM 458 | From: [111.249.83.104] | 發表日期 : 2013-05-16 18:29

gets到EOF時雖然c值是"",

但gets回傳值是0x00000000

所以strcmp(gets(c),"")會造成記憶體讀取錯誤

 
ZeroJudge Forum