@Dnomin

Нету вывода из массива с указателями из структуры с++?

// Example program
#include <iostream>
#include <string>

using namespace std;

struct Sentence{
char** words;
int size;
};

struct Text{
Sentence *sentences;
int size;
};

char * add_element(char *massiv, int number){
    
char* tp = new char[number+1];
for (int i=0; i<number; i++) tp[i] = massiv[i];

delete[] massiv;
return tp;
}

int main()
{
    Text text;
    
    char words[] = {'A'};
    char* sent[1];
    sent[0] = words;
    text.sentences->words = sent;
   

    char* word = add_element(text.sentences->words[0], 1);
    text.sentences->words[0] = word;
    cout << text.sentences->words[0][0];
}


В выводе пусто.
  • Вопрос задан
  • 69 просмотров
Пригласить эксперта
Ответы на вопрос 1
@Mercury13
Программист на «си с крестами» и не только
Первое и главное. Удивительно, что у вас программа заработала, ведь text.sentences не инициализировано. У меня вылет.

Ну и извечная ошибка начинающего «плюсовика»: память выделяется, непонятно, кто чем владеет, и, разумеется, память «течёт». Для чего, извините, в Си++ сделали инкапсуляцию, конструкторы и деструкторы?
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы