RealList 構造体に何かを追加しようとしている行のメソッド SetNameandOp 内で、実行時にタイトル エラーが発生します。RealList を間違って参照していると思いますが、修正方法がわかりません。誰にも考えはありますか?
ヘッダーファイルの構造体は次のとおりです。
class Instructions
{
public:
//methods
struct myInstruction
{
string name;
string opcode; //opcode of add, addi etc.
string rs; //2nd paramter
string rt; //3rd
string rd; //1st
string shamt; //shift amount
string function;
myInstruction* next;
}InstructionList;
}
class greenCard
{
public:
//methods
struct
{
string name;
string opcode;
string function;
} Instructions[29];
}
メソッド:
Instructions::InputtedInstructions* Instructions::get_instruction(vector<string>& vec, int counter)
{
InputtedInstructions* InputList = new InputtedInstructions[counter];
myInstruction* RealList = new myInstruction[counter];
while (ListPosition != counter)
{
string text = vec.at(ListPosition);
istringstream iss(text);
string command, arg1, arg2, arg3;
int CommaAmount = count(text.begin(), text.end(), ',');
if (CommaAmount == 2)
{
while( iss >> command >> arg1 >> arg2 >> arg3)
{
setNameandOp(RealList, InputList[ListPosition].name, counter);
ListPosition++;
}
}
}
return InputList;
}
void Instructions::setNameandOp(myInstruction* RealList, string set, int counter)
{
greenCard NameSet;
int y = NameSet.instructionsearch(set);
if (y != -1)
{
RealList[counter].name = NameSet.Instructions[y].name;
RealList[counter].opcode = NameSet.Instructions[y].opcode;
RealList[counter].function = NameSet.Instructions[y].function;
}
}
int greenCard::instructionsearch(string realinstruction)
{
int i;
for (i=0; i < 29; i++)
{
if ( realinstruction.compare(Instructions[i].name) == 0)
return i;
}
return -1;
}
何か不明な点があればお知らせください。必要に応じて、さらに詳しく説明させていただきます。他に何を質問せずに置くべきかわかりません。