【发布时间】:2015-10-26 06:55:31
【问题描述】:
我想阅读he5 格式,但HDF-EOS5 库中有错误。我的库版本是 HDF5 1.8.14、EOS5 1.15 和 MSVS 2010。
这是我的代码:
void main()
{
hid_t gridfileid = 0;
hid_t gridid = 0;
short *terrain[720];
hsize_t i, j;
int a = 0;
for( a = 0; a < 720; a++ )
{
terrain[a] = (short*)malloc(sizeof(short) * 1440);
}
gridfileid = HE5_GDopen( "D:\\MyHDFEOS\\OMI-Aura_L3-OMAEROe_2004m1001_v003-2009m0114t094640.he5", H5F_ACC_RDONLY );
if( gridfileid == FAIL )
{
printf( "he5 File Open FAIL!" );
return;
}
gridid =HE5_GDattach( gridfileid, "ColumnAmountAerosol" );
if( gridid == FAIL )
{
printf( "Grid Open FAIL!" );
return;
}
HE5_GDreadfield( gridid, "TerrainReflectivity", NULL, NULL, NULL, terrain );
HE5_GDdetach( gridid );
HE5_GDclose( gridfileid );
for( i = 0; i < 7; ++i ) {
for( j = 0; j < 14; ++j ) {
printf( "%d", terrain[i][j ]);
}
}
printf("\n");
for( a = 0; a < 720; a++ )
{
free( terrain[a] );
}
free( terrain );
}
此代码错误。
HE5_GDreadfield( gridid, "TerrainReflectivity", NULL, NULL, NULL, terrain );
'HDF-EOS5.exe的0x76f315fe有一个未处理的异常。 0xC0000005:访问冲突'
这是什么错误?
【问题讨论】:
-
现在找到了解决方案!这段代码是错误的。请参考此链接。 hdfdap.hdfgroup.uiuc.edu/examples/code/…
-
标准警告:不要将
void *转换为malloc和 C 中的朋友返回的那样。这不是 C++! -
哦!我明白。谢谢奥拉夫!
标签: c visual-studio-2010 hdf5