Нарушение доступа Cpp к местоположению чтения при попытке печати из массива

#c #arrays #function #class #compiler-errors

#c #массивы #функция #класс #ошибки компилятора

Вопрос:

Я пытаюсь создать программу, которая при вставке слова в текстовый документ. Определение выводится на консоль. Однако всякий раз, когда я пытаюсь вывести определение, я получаю «Место чтения с нарушением доступа» в строке std::cout << Dict[i 1] << std::endl;

Любая помощь в этом будет оценена.

 #pragma once
#include <iostream>
class Synonym
{
public:
    std::string Dict[14] = {"foo1", "a two o's file", "fooo2,", "a three o's file", "foooo3", "a four o's file", "fooooo4", "a five o's file", "foooooo5", "a six o's file", "fooooooo", "a seven o's file"};
    ~Synonym();
    void checkEqual();
};
  
 #include "Synonym.h"
#include <iostream>
#include <fstream>


Synonym::~Synonym()
{

}

void Synonym::checkEqual()
{
    std::ifstream fin;
    fin.open("Synonym.txt");
    std::string x;

    for (int i = 0; i < sizeof(Dict);   i)
    {
        fin >> x;
        if (x == Dict[i])
        {
            std::cout << Dict[i 1] << std::endl;
        }
        
    }
}
  

Комментарии:

1. Ну, вы перебираете Dict с i = 0 до 13 (sizeof(Dict)), а затем внезапно пытаетесь получить доступ к i 1 … теперь, как вы думаете, что произойдет, когда i = 13?

2. А, понятно. Спасибо, что указали на это

3. sizeof(Dict) будет 14 * sizeof(std::string) , это слишком много