검색을 이것저것해보니 침범하면 안되는 메모리 영역에 쓰려해서 그렇다는데
제 코드는 그냥
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <ctime>
using namespace std;
class Array{
private: double val[6][6];
public: Array(){setAry(0,0,0);}
void setAry(int i, int j, double a){val[i][j]=a;}
void rndAry(){srand((unsigned int)time(NULL));
for(int i=0;i<=5;i++){ val[i][0]=(rand()%15+1)*rtrnAry(0,0); for(int j=1;j<=5;j++){val[i][j]=0.01*(rand()%200+1)*rtrnAry(i,j-1);}}}
void printAry(int i,int j){cout.setf(ios::scientific, ios::floatfield); cout<<rtrnAry(i,j)<<"\t";}
double rtrnAry(int i,int j){return val[i][j];}
void printAryAll(){for(int i=0;i<=6;i++) {for(int j=0;j<=6;j++) {printAry(i,j);} cout<<endl;}}
int MinIn(int i){double find=rtrnAry(0,0); int j,k;
for(j=1;j<=6;j++){ if(find>=rtrnAry(i,j)){ find=rtrnAry(i,j);k=j;}} return k;}
};
int main(){
Array A1;
double iniAry,find; int i,j;
cout<<"배열(0,0)의 첫 값을 입력해주세요"<<endl;
cin>>iniAry;
A1.setAry(0,0,iniAry);
A1.rndAry();
ofstream tmp("tempfile.txt");
for(i=0;i<=6;i++){
for(j=0;j<=6;j++){tmp<<A1.rtrnAry(i,j)<<"\t";} cout<<endl;}
tmp.close();
return 0;}
그냥 6 by 6 매트릭스 만들고 랜덤한 숫자를 36개를 저장한다음에 그걸 tempfile.txt 파일로 저장하는건데요
계속 segmantation 오류가 떠서 이것저것 수정해봤는데 tmp<<A1.rtrnAry(i,j)<<"\t";이쪽 문장이 없으면 멀쩡해지거든요
원래는 A1.printAryAll();이 6x6한번에 출력해주는 함수라 tmp<<A1.printAryAll();로 했었는데 오류가 나길래
입력을 cout<<으로 해주는게 아니라 변수로 직접넣어줘야 하는건가 싶어서 rtrnAry()로 바꿨는데도 똑같이 오류가 나네요.
rtrnAry는 ixj 번째의 값을 리턴해주는 함수입니다.
세그먼테이션 오류를 어떻게 해야 고칠 까요...
i<=6
j<=6
인 부분이 있네요. 등호 빼셔야 하지 싶습니다.