Illegal Index in LinkNeighbors错误
运行程序的时候出现了以下错误。
ArcInfo input file "Linkmap" error
warning: Illegal Index in LinkNeighbors:(0,13):0(0)
warning: Illegal Index in LinkNeighbors:(0,14):0(0)
warning: Illegal Index in LinkNeighbors:(1,13):0(0)
warning: Illegal Index in LinkNeighbors:(1,14):0(0)
下面的代码包含了对错误信息的提示,if( !GMR(rr,rc,il) ) { sprintf(gMsgStr,"Illegal Index in LinkNeighbors: (%d,%d): %d(%x)",ir,ic,il,dir); gPrintErr(); }。这段代码里是不是什么地方不合适了,怎样才能修复这个错误啊。
int FrameLink::LinkNeighborsUsingMap( TMap* m ) {
TLayer* l = TModel::I().Grid()->getCellLayer();
int rr, rc;
unsigned int C0, C1;
for( TCell* c = fCurrentGrid->first(); c; fCurrentGrid->next(c) ) {
int ir = l->getCellLocCoord(TLayer::kRows,c);
int ic = l->getCellLocCoord(TLayer::kCols,c);
byte dir = m->BValue( ir, ic, 0 );
Grid_Direction il = (Grid_Direction) dir;
if( !GMR(rr,rc,il) ) { sprintf(gMsgStr,"Illegal Index in LinkNeighbors: (%d,%d): %d(%x)",ir,ic,il,dir); gPrintErr(); }
else {
C0 = ir+rr; C1 = ic+rc;
TCell* cR = l->getCell(C0,C1);
if( cR ) {
MakeLink(c,cR,l);
if( fLinkMap ) {
fLinkMap->SetValue(ir,ic,(unsigned long)il);
}
RegisterLink( ir, ic, C0, C1, l );
if(gDebug > 1 ) {
sprintf(gMsgStr,"add(%d,%d), ",ir,ic);
gPrintLog();
}
}
}
}
return 0;
}