65,211
社区成员
发帖
与我相关
我的任务
分享int **AeInt;
double **AeDCT;
AeInt = (int**)malloc( AeHeight * sizeof(int*) );
for(int i = 0;i < AeHeight;i ++)
*( AeInt + i ) = (int*)malloc( 8 );
AeDCT = (double**)malloc( AeHeight * sizeof(double*) );
for(int i = 0;i < AeHeight;i ++)
*( AeDCT + i ) = (double*)malloc( 8 );
void DCT ( int **WaitDCTWavData , double **FinishDCTWavData )
{
double au = 0.0;
double Sum = 0.0;
double cosValue = 0.0;
double TempValue = 0.0;
int u = 0;
for( int column = 0 ; column < AeHeight ; column ++ )
{
for ( u = 0 ; u < 8 ; u ++)
{
Sum = 0.0;
for ( int ii = 0 ; ii < 8 ; ii ++ )
{
if ( u == 0 )
au = sqrt( 1.0 / 8.0 );
else
au = sqrt( 2.0 / 8.0);
cosValue = cos ( ( ( 2.0 * ii + 1.0 ) * u * pi ) / 16.0 );
TempValue = *( *( WaitDCTWavData + column ) + ii ) * cosValue; // 貌似FinishDCTWavData有可能越界访问哦...
Sum = Sum + TempValue;
}
*( *( FinishDCTWavData + column ) + u ) = au * Sum; // 貌似FinishDCTWavData有可能越界访问哦...
}
int jjjjjjj=0;//插入断点Debug,column循环0~255均为正常,但再F5一次就出现内存报错。
}
}
DCT( AeInt , AeDCT );