为什么在vc++编译环境里用到new和delete生成动态数组、释放内存时会有如下错误:
error C2065: 'new' : undeclared identifier
error C2143: syntax error : missing ';' before 'type'
error C2065: 'delete' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'pnGradX'
error C2146: syntax error : missing ';' before identifier 'pnGradY'
error C2146: syntax error : missing ';' before identifier 'pnGradMag'
请好心人能帮忙解决下,先谢谢了。
error C2065: 'new' : undeclared identifier
error C2143: syntax error : missing ';' before 'type'
error C2065: 'delete' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'pnGradX'
error C2146: syntax error : missing ';' before identifier 'pnGradY'
error C2146: syntax error : missing ';' before identifier 'pnGradMag'
请好心人能帮忙解决下,先谢谢了。
double dRatioLow, double dRatioHigh, unsigned char *pUnchEdge)
{
// 经过高斯滤波后的图象数据
unsigned char * pUnchSmooth ;// 指向x方向导数的指针
int * pnGradX ; // 指向y方向导数的指针
int * pnGradY ;// 梯度的幅度
int * pnGradMag ;pUnchSmooth = new unsigned char[nWidth*nHeight] ;
pnGradX = new int [nWidth*nHeight] ;
pnGradY = new int [nWidth*nHeight] ;
pnGradMag = new int [nWidth*nHeight] ;// 对原图象进行滤波
GaussianSmooth(pUnchImage, nWidth, nHeight, sigma, pUnchSmooth) ;// 计算方向导数
DirGrad(pUnchSmooth, nWidth, nHeight, pnGradX, pnGradY) ;// 计算梯度的幅度
GradMagnitude(pnGradX, pnGradY, nWidth, nHeight, pnGradMag) ;
// 释放内存
delete pnGradX ;
pnGradX = NULL ;
delete pnGradY ;
pnGradY = NULL ;
delete pnGradMag ;
pnGradMag = NULL ;
delete pUnchSmooth ;
pUnchSmooth = NULL ;
}
新加进去的主函数就是这个了,单独新建工程没错误,就是加到block.c块中会有错误。