将指针从库返回到应用

糖浆

所以,我有一个lib文件,其中有将字符串转换为char *的函数:

void Additional::str2Char(string s,char** cstr)
{
    *cstr = new char[s.length() + 1];
    *cstr = (char*) s.c_str();
}

然后,我创建控制台应用程序,并执行以下操作:

int main()
{
    Additional *a = new Additional();
    string b = "fdfd";
    char *test;
    a->str2Char(b, &test);
    cout << test << endl;
    delete a;
}

输出确实很糟糕。.帮助我,我不知道如何正确地从lib中获取指针。

迈克·西摩

首先,您分配一些内存。

然后,您将指针重新分配给该内存,以指向本地字符串的内容,从而s泄漏您分配的内存。

然后,您从函数中返回,销毁s,使指针悬空。它不再指向有效数据,并且对其取消引用将产生未定义的行为。

最好的解决方案是停止弄乱指针和new,并将其std::string用于所有字符串。如果您确实想这样做,则需要将字符串内容复制到新的内存中:

*cstr = new char[s.length() + 1]; // no change
std::strcpy(*cstr, s.c_str());    // copy the data, including the terminator

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C语言如何将指针从函数返回到指针

来自分类Dev

将两个指针返回到动态数组

来自分类Dev

将数组地址从函数返回到指针(C ++)

来自分类Dev

将2D Cython指针返回到Python数组

来自分类Dev

将数组地址从函数返回到指针(C ++)

来自分类Dev

将const双指针返回到const数据

来自分类Dev

OWASP ZAP扫描将“应用程序错误披露”返回到javascript库。是假阳性吗?如何证明或解决?

来自分类Dev

将数组从C#COM库返回到VBA

来自分类Dev

将数据库查询中的值返回到 LinkedHashMap

来自分类Dev

从指针创建Mat,调整其大小,然后将指针返回到新Mat

来自分类Dev

如何应用将数据框返回到groupby对象的函数

来自分类Dev

将网络表单值返回到Google应用脚本

来自分类Dev

如何将返回指针从C ++ dll函数返回到C#

来自分类Dev

是否有一个Web应用程序可用于将结果返回到索引数据库中的搜索?

来自分类Dev

为什么不好的做法是将指针返回到局部变量或参数?

来自分类Dev

如何使用C#接口将C ++智能指针返回到PowerPoint接口

来自分类Dev

确定跨dll边界将const引用/指针返回到std :: vectors吗?

来自分类Dev

将int array []或指向int array []的指针返回到C中的调用例程的函数

来自分类Dev

使用指针将字符和浮点值从 scanf 返回到主函数 C

来自分类Dev

从C#调用C dll中的函数,该函数将某种类型的指针返回到函数指针

来自分类Dev

将Firebase数据库阵列返回到另一个函数,但返回空

来自分类Dev

将输入返回到段落

来自分类Dev

无法将指针推回到向量中

来自分类Dev

使用Slick 3.1.x将数据库连接返回到HikariCP池

来自分类Dev

使用CTypes和Foreign将字符串从C库返回到OCaml

来自分类Dev

使用CTypes和Foreign将字符串从C库返回到OCaml

来自分类Dev

PHP数据库查询:如何将while循环的结果返回到Javascript变量?

来自分类Dev

如何使用 c# 将空值返回到数据库

来自分类Dev

将记录表从Oracle函数返回到C#应用程序

Related 相关文章

  1. 1

    C语言如何将指针从函数返回到指针

  2. 2

    将两个指针返回到动态数组

  3. 3

    将数组地址从函数返回到指针(C ++)

  4. 4

    将2D Cython指针返回到Python数组

  5. 5

    将数组地址从函数返回到指针(C ++)

  6. 6

    将const双指针返回到const数据

  7. 7

    OWASP ZAP扫描将“应用程序错误披露”返回到javascript库。是假阳性吗?如何证明或解决?

  8. 8

    将数组从C#COM库返回到VBA

  9. 9

    将数据库查询中的值返回到 LinkedHashMap

  10. 10

    从指针创建Mat,调整其大小,然后将指针返回到新Mat

  11. 11

    如何应用将数据框返回到groupby对象的函数

  12. 12

    将网络表单值返回到Google应用脚本

  13. 13

    如何将返回指针从C ++ dll函数返回到C#

  14. 14

    是否有一个Web应用程序可用于将结果返回到索引数据库中的搜索?

  15. 15

    为什么不好的做法是将指针返回到局部变量或参数?

  16. 16

    如何使用C#接口将C ++智能指针返回到PowerPoint接口

  17. 17

    确定跨dll边界将const引用/指针返回到std :: vectors吗?

  18. 18

    将int array []或指向int array []的指针返回到C中的调用例程的函数

  19. 19

    使用指针将字符和浮点值从 scanf 返回到主函数 C

  20. 20

    从C#调用C dll中的函数,该函数将某种类型的指针返回到函数指针

  21. 21

    将Firebase数据库阵列返回到另一个函数,但返回空

  22. 22

    将输入返回到段落

  23. 23

    无法将指针推回到向量中

  24. 24

    使用Slick 3.1.x将数据库连接返回到HikariCP池

  25. 25

    使用CTypes和Foreign将字符串从C库返回到OCaml

  26. 26

    使用CTypes和Foreign将字符串从C库返回到OCaml

  27. 27

    PHP数据库查询:如何将while循环的结果返回到Javascript变量?

  28. 28

    如何使用 c# 将空值返回到数据库

  29. 29

    将记录表从Oracle函数返回到C#应用程序

热门标签

归档