프로그래밍

 3198, 1/160 회원가입  로그인  
   호박
   C++ 질문드립니다!

http://www.hackerschool.org/HS_Boards/zboard.php?AllArticle=true&no=6471 [복사]


#include <iostream>
#include <string>
using namespace std;

int main()
{
        string str[4]={"학번", "점수 1", "점수 2",  "점수 3"};
        int val;
        int** pi;
        int i;
        int x;
        int y;

        cout << "학급의 인원수를 입력하세요. 최대값은 10입니다. :  ";
        cin  >>  val;

        pi= new int*[val];

        for(i=0; i<val; i++)
                pi[i]= new int[val];

        for(i=0; i<val; i++){
                for(x=0;  x<3; x++){
                        cout << i+1 << " 번째 학생의 " << x+1 << "번째 과목 성적을 입력하세요 : ";
                        cin >> pi[i][x+1];
                        cout << "여기까지 실행됨" <<endl;
                }
                pi[i][0]=i+1;
        }

        for(y=0; y<4; y++)
                cout << " | " << str[y] ;

        cout << endl;

        for(i=0; i<val; i++){
                for(x=0; x<4; x++)
                        cout << " | " << pi[i][x] << " | " ;
                cout <<endl;
        }
                for(int p=0; p<val; p++){
                        //여기까지는 정상적으로 작동함
                delete[] pi[p];//이 부분에서 실행 오류가 나네요. 컴파일 상으로는 오류없음
        }

        delete[] pi;


        return 0;
}


------------------------------------------------------

계속 질문을 드리게 되네요 ㅠㅠ 질문드릴건 다름이 아니라

위의 코드를 실행하면 학급인원과 점수를 입력받고 출력까지는 문제가 없는데,

앞에서 동적할당한 2차원 배열의 메모리를 해제해주려고 하는 부분에서

오류가 나네요.. 컴파일 상의 오류는 아니고 실행시 저부분서 오류가 발생합니다.

C++ 고수님들 왜 오류가 발생하는 건가요? 궁금해서 글 올립니다!

  Hit : 4355     Date : 2014/06/16 05:56



    
cd80 어떤에러가 발생하나요?? 전 저코드로 제대로 실행돼요 2014/06/16