#include <stdio.h>
#include <stdlib.h>
int main(int argc, char *argv[])
{
int char_freq[26] = {0};
int i = 'a';
int plain_char = getchar();
while(plain_char != EOF)
{
char_freq[plain_char-'a']++;
plain_char = getchar();
}
while(i <='z')
{
printf("%c %d \n",i,char_freq[i-'a']);
i++;
}
return EXIT_SUCCESS;
}
在上面的程序中,我試圖製作一個頻率表並使用ASCII值進行播放。問題是我沒有檢查plain_char
ASCII值是在小寫字母的範圍內,如果我輸入A
在plain_char
然後65-97 = -32
數組索引,我增加它,我不應該得到分段錯誤?但程序運行仍然正常?無段錯誤
我怎麼知道有多少內存分配給我的程序? – user2688772
@ user2688772你不應該在意。你應該只關心你明確分配的內存。 (我們也應該說程序而不是程序) –