элемент указывает на предыдущий), каждый элемент в котором хранит текст типа "С:\\ПАПКА\\", при этом каждый последующий элемент хранит текст предыдущего с добавлением "ПАПКА\\", текст хранится в формате LPCSTR.
При написании столкнулся с проблемой, после выполнения первой итерации цикла, после 18 строчки, у первого элемента текстовое значение по какой-то причине меняется на хаотические символы, подскажите, пожалуйста по какой причине так происходит? (пытался искать решение чего-то подобного, но пока ответа не нашёл)
код:
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
string dort;
struct H {
LPCSTR path = nullptr;
H*b = nullptr;
};
H*tr = new H;
int main() {
tr->path = "C:\\";
string path_n = "FOLDER";
for (int i = 0; i < 5; i++) {
H *a = tr;
dort = tr->path;
dort = dort + path_n + '\\';
tr = new H;
tr->path = dort.c_str();
tr->b = a;
cout << tr->path << endl;
}
system("pause");
return 0;
}
скриншот проблемы:
Проблема очень простая — ты пишешь на С++, как будто ты в Си Ты пытаешься оперировать объектом снаружи, а надо "внутри"
Обсуждают сегодня