これは私のコードです(C++)。これはなぜクラッシュですか?どうすれば修正できますか?
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <sstream>
using namespace std;
void rotaryxorencrypt(int dat[],int len){
------------------------------
}
void encrypt(int dat[],int len){
rotaryxorencrypt(dat,len);
}
void decrypt(int dat[],int len){
}
int main() {
fstream file;
fstream *fileptr=&file;
file.open("tmp",ios::in);
string line;
string *lineptr=&line;
int x;
int *xptr=&x;
int cont=0;
int *contptr=&cont;
int len;
int *lenptr=&len;
stringstream ss;
stringstream *ssptr=&ss;
string cryption;
string *cryptionptr=&cryption;
getline(*fileptr,*lineptr);
try{
if(*lineptr=="encryption"){
*cryptionptr="encrypt";
}else if(*lineptr=="decrypt"){
*cryptionptr="decryption";
} else {
cout<<"Unknown Cryptography Type - "<<*lineptr<<endl;
throw 0;
}
getline(*fileptr,*lineptr);
*ssptr<<*lineptr;
*ssptr>>*xptr;
ss.str("");
ss.clear();
*lenptr=*xptr;
int *dataptr;
dataptr=new int[*lenptr];
cout<<"Loading Formatted Data"<<endl;
while (getline (*fileptr, *lineptr)) {
*ssptr<<*lineptr;
*ssptr>>*xptr;
ss.str("");
ss.clear();
dataptr[cont]=*xptr;
cont++;
}
file.close();
delete lineptr;
delete xptr;
delete contptr;
delete ssptr;
delete fileptr;
------------------
if(*cryptionptr=="encrypt"){
cout<<"Beginning Encryption Process."<<endl;
cout<<dataptr[0]<<endl;
encrypt(dataptr,len);
cout<<dataptr[0]<<endl;
cout<<"Outputting Encrypted Data."<<endl;
}else if(*cryptionptr=="decrypt"){
cout<<"Beginning Decryption Process."<<endl;
decrypt(dataptr,len);
cout<<"Outputting Decrypted Data."<<endl;
}
cout<<"Clearing Cache."<<endl;
delete []dataptr;
delete cryptionptr;
delete lenptr;
}catch(int x){
if(x==0){
cout<<"Clearing Cache."<<endl;
delete fileptr;
delete lineptr;
delete xptr;
delete contptr;
delete ssptr;
delete fileptr;
}else{
cout<<"Unknown Error - Cannot Clear The Cache."<<endl;
}
}
cout<<"here"<<endl;
return 0;
cout<<"here"<<endl;
}
はreturn 0;
前と後cout<<"here"<<endl;
に注意してください。それらがなければ私は同じ問題を抱えているので問題はありませんが、それは最初のcout<<"here"<<endl;
を実行しますが、2番目前にクラッシュします。私が2番目のものを取り除くと、同じことが起こります。最初に取り除くとクラッシュするので、return 0;
にクラッシュしています。なぜこうなった。 (PSこれは暗号化の別のプロジェクトの一部です(おそらく敏感な部分[クラッシュポイントやコードエラーではない]が "-----------------"に変わったかもしれません(これは実際のものではありませんコード)。
[mcve]を作成してください。100行をダンプしたときにコードを省略することはできません。正確な出力は何ですか? – Tas
あなたの説明はクラッシュのようには聞こえません。 **あなたのメインルーチンからの帰り**があなたのプログラムを終了させることに驚いたのですか? –
私の正確なoutp (\ nは入力できない入力があることを意味します):フォーマットされたデータの読み込み\ n暗号化プロセスの開始\ n140 \ n140 \ n暗号化されたデータの入力\ nキャッシュの消去\ nこれはクラッシュする場所です\ nプロセスは255(0xFF)の実行時間を返しました:13.743 s \ n続行するにはキーを押してください。 (終了出力)。コードの残りの部分を与えるために、私が省略したコードは、クラッシュが始まる前に動作したので、問題ではなく、機密性があります(これは暗号化プログラムの一部です)。 – Justin