2D массив удаляет свои элементы после выхода из цикла - PullRequest
0 голосов
/ 30 июня 2018

Ввод: привет мир
Следующая программа должна записать слова «привет» в словах [0] и «мир словами» [1]

int rowIndex= 0;
char words [100][100];
for (int x = 0 ; x < input.length(); x++)
{
  if (input[x]>='a'&&input[x]<='z' || input[x]>='A'&&input[x]<='Z')
 // This condition is to avoid recording spaces in the array
  {
      words[rowIndex][x]= input[x];
      cout << words[rowIndex][x]<<" ";
  }
  else {
    rowIndex++;
    // Once it finds a space, it records the following characters into the next index
    cout << " Index: " << rowIndex <<endl;
  }
}

вывод:
h l l o
Индекс: 1
w l d

cout <<"Index 0: "<< words[0] <<endl;

Вывод: привет

cout <<"Index 1: "<< words[1] <<endl;

Вывод: «ничего не выводится» (почему не выводится «мир»)
*********************************************** ******
Почему массив не содержит символы в словах [1] и только символы в словах [0]
Примечание: я попытался сделать это с динамическим 2D-массивом, и возникла та же проблема.

1 Ответ

0 голосов
/ 30 июня 2018

cout <<"Index 1: "<< words[1] демонстрирует неопределенное поведение путем доступа к words[1][0], который никогда не был инициализирован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...