C++コードのメイン関数でスタック破壊が検出されました...メインの本体は次のとおりです。
int main()
{
long int acn;
char dot[15];
float open_balance=1;
char k;
int total_account=0;
int c;
static int ac=10000;
TRANSACTION trn;
support sprt;
do{
cout<<"\n1.New account\n2. Transaction\n3. Exit\n\nEnter choice:";
cin>>k;
switch(k) {
case '1':
ac+=1;
time_t rawtime;
time(&rawtime);
strcpy(dot,ctime(&rawtime));
do{
if(open_balance<=0)
cout<<"Opening BALANCE can not be less than zero";
cout<<"\nEnter the opening balance :";
cin>>open_balance;
}while(open_balance<=0);
bln[total_account].get_data(ac,open_balance,dot);
++total_account;
break;
case '2':
trn.trans(total_account);
break;
case '3': break;
default :
cout<<"\nWrong choice!!";
}
}while(k!='3');
cout<<"Thank you";
return(0);
}
valgrind を介してコードを実行すると、スタックの破壊も検出されますが、メモリ リークは見つかりません。valgrind レポート:
1.新規口座 2.取引 3.退出
選択肢を入力してください:3 * スタック破壊が検出されました * : ./a.out が終了しました ありがとうございます==9813==
==9813== ヒープ概要:
==9813== 出口で使用中: 0 ブロックで 0 バイト
==9813== 総ヒープ使用量: 10 個の割り当て、10 個の解放、954 バイトの割り当て
==9813==
==9813== すべてのヒープ ブロックが解放されました -- リークの可能性はありません
==9813==
==9813== 検出され抑制されたエラーの数については、-v で再実行してください。
==9813== エラーの概要: 0 コンテキストからの 0 エラー (抑制: 0 からの 0) 中止 (コア ダンプ)
どこが間違っているのですか?