-1
我做了這個小程序來統計一個字符串中有多少'en。它確實有效,但是我收到一個錯誤,說有堆棧被檢測到。我不明白如何解決這個...任何人都可以給我一個小費?堆棧粉碎檢測到C
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char *argv[])
{
char s[30];
int getal=0, e, n;
int i = 0;
gets(s);
for (; s[i] != '\0'; i++) {
e =(s[i] == 'e');
n =(s[i + 1] == 'n');
if (e && n)
getal++;
}
printf("Het aantal bedraagt: %i", getal);
return 0;
}
是字符串輸入你超過29個字符?然後'gets'將愉快地寫出超出傳遞數組範圍的方式。有一個原因是'gets'已經從最新的C標準中刪除,使用['fgets'](http://en.cppreference.com/w/c/io/fgets)(或['gets_s'](http:而不是.encppreference.com/w/c/io/gets))。 –
http://stackoverflow.com/questions/1345670/stack-smashing-detected可能會幫助你理解問題 – SoulRayder
我修復了一些特別討厭的縮進問題,所以我們可以從樹上看到木頭。 – Bathsheba