【问题标题】:Resize 2d variable c++调整二维变量c ++的大小
【发布时间】:2018-05-10 16:01:34
【问题描述】:

我正在使用 C++ CURL 库来发送电子邮件。

我的问题是我的电子邮件中的文本可能会不时变化,所以我需要更改大小或动态重新分配我的变量:

const char *payload_text[10]

其中 10 可能是 20 甚至 30 如何在我的程序中更改此变量的大小?

顺便说一下,这个变量必须分配,因为我使用的是 CURL 库中的示例: https://curl.haxx.se/libcurl/c/smtp-mail.html

【问题讨论】:

  • 你使用 std::vector<:string>.
  • 我希望我可以使用向量,但问题是 curl 库不能使用仅向量数组
  • @Qouqou 这不是问题。看我的回答。

标签: c++ curl


【解决方案1】:

当您遇到可能需要更改大小的数据结构时,您应该考虑std::vector

在这种特定情况下,std::vector&lt;std::string&gt;&gt; 是您想要/需要的。

要将向量传递给需要 C 样式数组和大小的旧版 API,请将其传递给 std::vector::data()std::vector::size()。向量保证使用连续内存,就像 C 样式的数组一样,因此两者可以很好地互操作。

【讨论】:

    【解决方案2】:

    谢谢 它实际上只适用于其他有同样问题的人: 在函数payload_source改行:

    data = payload_text.at(upload_ctx->lines_read)
    

    我害怕做的事情以及在您将填充电子邮件数组的代码正文中执行以下操作:

    payload_text.push_back(char_array)
    

    向量本身应该是:

    vector <const char*> payload_text
    

    再次感谢大家

    【讨论】:

    • 嗯。您应该接受解决您的问题的答案,而不是发布一个不是真正答案的答案。如果您想说声谢谢,请在接受的答案的评论中这样做。
    猜你喜欢
    • 1970-01-01
    • 2017-01-05
    • 2011-02-08
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2016-02-22
    • 2015-02-27
    • 1970-01-01
    相关资源
    最近更新 更多