2012-09-21 5 views
-1

그래서 저는 pgm/ppm 파일을 읽고 결국 수정하는 클래스에 대해 작업하고 있습니다. 그러나 저는 여전히 데이터를 읽는 중입니다. 나의 현재 목표는 바이너리 데이터를위한 저장 공간을 만드는 것이다.ppm/pgm 이미지 데이터 저장 공간 만들기

 uchar* pxm::newimg(int nrows, int ncols, int bpp) 
     { 
      uchar *newimage = new uchar[nrows * ncols * bpp]; 
      //uchar defined as binary data previously 
      return newimage; 
     } 

내가 다음으로 내 "읽기"기능이를 사용 :

 img = newimg(nrows, ncols, bpp); //img declared in private section of class 
     ws(myfile); //reads the newline 
     myfile.read((char *) img[0], nrows * ncols * bpp); 
     //nrows, ncols, and bpp private member variables in class 
     myfile.close(); 

불행하게도이 코드를 컴파일하는 동안, 그것은 생산, 아래 그렇게하도록되어 함수 내 코드는 실행시 세그멘테이션 오류. 나는 파일을 올바르게 읽고 nrows, ncols, bpp와 magicid를 올바르게 설정하고 있는지 확인하기 위해 newimg 함수에 문제가 있음을 확신합니다. 따라서 배열 데이터 구조를 제대로 초기화하지 않는다고 가정합니다. 누구든지 어떤 제안이라도 있으면 감사하겠습니다. 감사합니다. 제타 p.s 내 코드에 대한 자세한 내용이 필요하면 요청하고 게시물에 더 추가하겠습니다.

+0

이와 같은 간단한 질문에 대해서는 StackOverflow를 어지럽히 지 않고 선생님이나 TA에게 물어 보는 것이 좋습니다. – Quuxplusone

답변

2

(char *) img[0]img 또는 이어야합니다.

+0

오른쪽. 컴파일러는'uchar'을'char * '로 재배치 할 때 포인터가 하나이더라도'char * '를 재사용 할 때 수행중인 작업을 알고 있다고 가정합니다. –