In welcher Zeile taucht der Fehler auf?
Sieht mir irgendwie danach aus, als ob du versuchst, ein Array mit Größe 0 zu initialisieren.
Edit:
Eine mögliche Fehlerquelle ist die Variable k. In den if's fragst du ab, ob k > -1 sein soll. Es muss aber k > 0 sein, wenn du Array's mit der Länge k initialisieren willst. Ein Array kann nicht die Länge 0 haben:
PHP-Code:
CvTraitInfo::read
(...)
[...]
for(j=0;j<iNumChildren;j++)
{
pXML->GetChildXmlValByName(szTextVal, "SpecialistType");
k = pXML->FindInInfoClass(szTextVal);
if (k > -1) // !!!!
{
// delete the array since it will be reallocated
SAFE_DELETE_ARRAY(m_ppaiSpecialistCommerceChange[k]); // Gefährlich, k kann 0 sein!
if (gDLL->getXMLIFace()->SetToChildByTagName(pXML->GetXML(),"CommerceChanges"))
{
// call the function that sets the yield change variable
pXML->SetCommerce(&m_ppaiSpecialistCommerceChange[k]);
gDLL->getXMLIFace()->SetToParent(pXML->GetXML());
}
else
{
pXML->InitList(&m_ppaiSpecialistCommerceChange[k], NUM_COMMERCE_TYPES);
}
}
if (!gDLL->getXMLIFace()->NextSibling(pXML->GetXML()))
{
break;
}
}
// set the current xml node to it's parent node
gDLL->getXMLIFace()->SetToParent(pXML->GetXML());
}
// set the current xml node to it's parent node
gDLL->getXMLIFace()->SetToParent(pXML->GetXML());
}