#29850: 有人知道這是為什麼嗎? (C語言)


imcoolooc@gmail.com (username = ?)

學校 : 不指定學校
編號 : 189785
來源 : [180.217.113.89]
最後登入時間 :
2023-10-16 23:24:38
a009. 解碼器 -- ACM 458 | From: [1.170.5.88] | 發表日期 : 2022-04-05 16:16

NA:系統呼叫了 abort 函式! *** stack smashing detected ***: terminated Aborted (core dumped)

 

#include <stdio.h>
#include <string.h>
int main() {
    char buf[80];
    scanf("%s", buf);
    int al = strlen(buf);
    int td;
    for (int a=0; a < al; a++) {
        td = (int)(buf[a]);
        printf("%c", (td - 7));

    }


    return 0;
}


 

 
#29853: Re:有人知道這是為什麼嗎? (C語言)


cges30901 (cges30901)

學校 : 不指定學校
編號 : 30877
來源 : [39.9.74.255]
最後登入時間 :
2024-10-14 22:20:08
a009. 解碼器 -- ACM 458 | From: [39.9.100.103] | 發表日期 : 2022-04-05 17:43

    char buf[80];


看到stack smashing detected就要想到buffer overflow。你的buf開太小了,如果改成700就會AC了

 
ZeroJudge Forum