#7752: __RE


earfish90807 (Lohaz)


#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)


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

但gets回傳值是0x00000000

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