一如既往地感谢您的时间和帮助!不知道这里发生了什么,但这可能是显而易见的,所以我想我会让其他人看看。
这是我的代码。现在 run 以字符串形式查找具有指定名称的节点的地址。然后返回这个节点对象的地址。有时它工作正常(大部分)但其他运行给我一个分段错误。谁能明白为什么?
class ManipulateArray
{
public:
Node* formArray();
Node* findMemAddress(string);
private:
GetFileInfo g;
};
Node* ManipulateArray::formArray()
{
Node *list = new Node[48];
string null = "*";
for(int i = 0; i<48; i++)
{
for(int j = 0; j<6; j++)
{
string info = g.returnInfo(i,j);
switch(j)
{
case 0:
list[i].setNodeName(info);
break;
case 1:
if(info.compare(null) == 0)
{list[i].getAttachedNode(j) = 0;}
break;
}
}
}
return list;
}
Node* ManipulateArray::findMemAddress(string nodeName)
{
Node* memoryAddress = 0;
Node* temp;
for(int i = 0; i<48; i++)
{
string name = temp[i].getNodeName();
temp = formArray();
if(name.compare(nodeName) == 0)
{
memoryAddress = &temp[i];
break;
}
}
return memoryAddress;
}
int main()
{
ManipulateArray z;
//Node *start;
//Node *finish;
Node* start;
start = z.findMemAddress("F1");
cout << start->getNodeName();
}