Изменение размера 2d переменной c ++ - PullRequest
0 голосов
/ 10 мая 2018

Я использую библиотеку C ++ CURL для отправки электронных писем. Моя проблема в том, что текст в моем письме может время от времени меняться, поэтому мне нужно изменить размер или динамически перераспределить мою переменную:

const char *payload_text[10]

, где 10 может быть 20 или даже 30 Как я могу изменить размер этой переменной в моей программе?

Кстати, эта переменная должна быть размещена так, как я использую пример из библиотеки CURL: https://curl.haxx.se/libcurl/c/smtp-mail.html спасибо заранее

Ответы [ 2 ]

0 голосов
/ 10 мая 2018

СПАСИБО На самом деле это работает только для некоторых точек с такой же проблемой: В функции payload_source измените строку:

data = payload_text.at(upload_ctx->lines_read)

Что я боялся сделать, и в теле вашего кода, гдеВы будете заполнять массив адресов электронной почты следующим образом:

payload_text.push_back(char_array)

Сам вектор должен быть:

vector <const char*> payload_text

Еще раз большое спасибо всем

0 голосов
/ 10 мая 2018

Всякий раз, когда вы сталкиваетесь со структурой данных, которая может потребоваться изменить размер, вы должны думать: std::vector.

В данном конкретном случае std::vector<std::string>> - это то, что вы хотите / нуждаетесь.

Чтобы передать вектор в устаревший API, который ожидает массив и размер в стиле C, передайте его std::vector::data() и std::vector::size().Вектор гарантированно использует непрерывную память, точно так же, как массив в стиле C, так что эти два хорошо взаимодействуют.

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