0

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;
}

何か不明な点があればお知らせください。必要に応じて、さらに詳しく説明させていただきます。他に何を質問せずに置くべきかわかりません。

4

0 に答える 0