[C++]메모리 동적 할당에 관해서 해제를 하면 자꾸 오류가 뜹니다
      글쓴이: cleitia / 작성시간: 수, 2013/04/24 - 9:56오전    
  
  ;코드 전문은 아래와 같습니다.
주석처리를 한 //delete [] szFileNamePlsNumber;	 부분에서 메모리 해제를 할 때 에러가 뜹니다 ㅜㅜ
#include <use_opencv.h>
#include <iostream>
#include <fstream>
#include <string.h>
void main()
{
int nWidth = 176;
int nHeight = 144;
int nImgSize=nWidth*nHeight;
int nSet = 19;
unsigned short *pnZ = new unsigned short [nImgSize];
char *szFileNamePlsNumber = new char [];
FILE *fin;
CvSize cvImgSize = cvSize(nWidth, nHeight); // SR image size
IplImage *cv_DistImg_16U = cvCreateImage(cvImgSize,IPL_DEPTH_16U,1);
IplImage *cv_DistImg_8U = cvCreateImage(cvImgSize,IPL_DEPTH_8U,1);
for(int i=0; i<nSet; i++)
{
sprintf(szFileNamePlsNumber, ".\\data1\\3DPCL_Z_Vec_U_%d.txt", (i+1));
fin = fopen(szFileNamePlsNumber, "r");
if(fin==0){printf("%d 의 데이터 로드 실패! \n", i+1);}
else
{
for(int j=0; j<nImgSize; j++)
{
fscanf(fin, "%d", &pnZ[i]);
}
memcpy(cv_DistImg_16U->imageData, pnZ, cvImgSize.width*cvImgSize.height*sizeof(unsigned short));
cvConvertScale(cv_DistImg_16U, cv_DistImg_8U, 255./2000., 0);
}
}
fclose(fin);
delete [] pnZ;
//delete [] szFileNamePlsNumber;
cvReleaseImage(&cv_DistImg_16U);
cvReleaseImage(&cv_DistImg_8U);
}
Forums: 


http://kldp.org/node/103011
http://kldp.org/node/103011
좋은 하루 보내세요 ;)
char *szFileNamePlsNumber =
char *szFileNamePlsNumber = new char [];
이 부분에서 할당시 에러가 나는 것으로 보입니다.
char* szFileNamePlsNumber=new char[5];
이런 식으로 메모리를 할당해보세요. 이런 식으로 할당하지 않더라도 컴파일시 오류 메시지는 뜨지 않을 수도 있지만 실행시 메모리 침범과 같은 오류가 발생할 수도 있을 겁니다.
본인 맞습니다.
인증샷
우헤헤헤... 로 대신합니다.
댓글 달기