C++運(yùn)行程序后顯示停止運(yùn)行是怎么回事,?大神能不能看一下幫忙改改
#include <iostream>
#include <cctype>
using namespace std;
int *LetterCount(const char *s);
int main()
{
const char x[] = "The quick brown fox jumps over the lazy dog.";
cout << *LetterCount(x) << endl;
return 0;
}
int *LetterCount(const char *s)
{
int q[26] = {0};
for (const char *p = s; *p; p++)
{
if (isalpha (*p) ){
++q[tolower(*p) - 'a'];}
}
for (int i = 0 ; i < 26 ; i++)
cout << q[i] << ",";
return 0;
}
你的
cout << *LetterCount(x) << endl;
有問題啊
你的LetterCount返回的值是0
而*LetterCount(x) 變成了取0地址中的值,當(dāng)然出錯(cuò)了
從你程序看,你已有相當(dāng)?shù)腃++基礎(chǔ),應(yīng)該不會(huì)犯如此低級(jí)的錯(cuò)的
直接改為函數(shù)調(diào)用就可以了(結(jié)果在函數(shù)中已有輸出了)LetterCount(x);
最多加個(gè)
cout << endl;
指針函數(shù),,是不是返回有問題
相關(guān)推薦
便查問答是一款實(shí)用的網(wǎng)絡(luò)熱門知識(shí)問答平臺(tái),,專注于分享你不知道的知識(shí)、經(jīng)驗(yàn)及生活問題,,在這里所有人都能找到答案歡迎網(wǎng)友參與討論,。