я пытаюсь сделать код производителя Шеннона из входного текста, и у меня есть некоторые проблемы ...C++ необработанное исключение. что происходит?
так, есть некоторые простые дерьмо-код
int main()
{
string x="this is very big text.";
int temp;
int N = x.length();
int *mass = new int [N];
затем Подсчет символов в тексте;
затем подсчет символов, используемых в таблице ASCII;
создание новых 2 массивов с символами и счетчиками символа, но их размеры довольно малы;
удалить старый символ массивного delete mass;
рода «эм счетчиков и подсчет их кумулятивную вероятность;
double * cumulative = new double (k);
double temp=int_mass[0];
cumulative[0]=0;
for (int i=1; i<k; i++)
{
temp=int_mass[i-1];
cumulative[i]=cumulative[i-1]+temp/N;
}
cout'ing все 3
массивыdouble a,b,n;
n=N;
for (int i=0; i<k; i++)
{
b=int_mass[i];
b/=n;
cout<<char_mass[i]<<" ";
cout<<b<<" "; //**__**__**
cout<<cumulative[i]<<endl;
}
так, у меня есть некоторые проблемы. если текст невелик, то я поймаю необработанное исключение при завершении praogram. если текст большой, около 100 + символов, у меня есть исключение в __ ** __.
Есть ли у вас какие-либо предложения, почему это происходит?
извините за большой код, это мой первый фиксатор на StackOverFlow.
'delete mass;' is undefined behavior. Еще одна причина, по которой такие вещи, как 'std :: vector', более безопасны. – chris
Да, спасибо! –