Выполняя некоторый код, у меня нет ожидаемых результатов из-за самоизменения значений массива внутри и снаружи цикла. Почему это происходит?Почему элементы массива имеют разные значения внутри и снаружи цикла?
char* arr[2];
int i=0;
char inp[20];
while(i<2)
{
cin>>inp;
arr[i]=inp;
cout<<arr[i]<<endl;
i++;
}
cout<<arr[0]<<endl;
cout<<arr[1]<<endl;
Для ввода:
aaa
bbb
Выход есть:
aaa
bbb
bbb
bbb
Вы уверены в своем выходе? Ideone производит другое, согласующееся с уже предоставленными ответами: http://ideone.com/y2YQjX – Anedar
@iharob Массивы - особенно инкапсулированные 'std :: array' - очень эффективны во многих случаях. Разумеется, для таких динамических массивов, как это, кажется, «вектор» лучше, но на общем уровне, как вы его сформулировали, я не согласен ни с одной из рекомендаций, которые вы делаете. –
@ M.M Благодарим вас за разъяснение, я удалю комментарий. –