将Const Char附加到Char * C ++

埃杜安·贝克(Eduan Bekker)

我知道这听起来像是一个初学者的问题,但我从未在c ++中使用过char *。我总是只使用字符串。但是Ubuntu 13.10NVidia OpenGL驱动程序存在错误,因此我必须使用char *。是错误。

我有一个const char* folderName在构造函数中使用的类,然后创建该类以编译.glsl文件夹中的所有文件。我已经尝试过了strcpystrcat而且它们看起来都是如此。

glProgram *p = new glProgram("phong\n");
glProgram :: glProgram(const char* folderName)
{
    cout << folderName << endl;
    char* name = strdup(folderName);
    cout << name << endl;
    name = strcat(name,"/vertex.glsl");     
    cout << name << endl;
}

但是输出却不如预期。

phong
phong
/vertex.glsl

如何获得输出结果phong/vertex.glsl

来自莫斯科的弗拉德

该代码无效,因为您将覆盖不属于动态分配的数组的内存。您应该自己分配一个足以容纳串联字符串的内存区域。

glProgram *p = new glProgram("phong\n");

glProgram :: glProgram(const char *folderName)
{
    const char *vertex = "/vertex.glsl";

    size_t n = std::strlen( folderName );
    if ( n != 0 && folderName[n - 1] == '\n' ) --n;

    char *name = new char[n + std::strlen( vertex ) + 1];

    std::strncpy( name, folderName, n );
    name[n] = '\0';
    std::strcat( name, vertex ); 
}

同样,我也看不出该参数包含换行符。为什么论点看起来不像"phong"

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

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

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

C ++-如何将char附加到char *?

来自分类Dev

在 C++ 中将字符串附加到 const char* 时出现编译时错误?

来自分类Dev

将C ++ const char *转换为char *

来自分类Dev

C将const char *转换为char

来自分类Dev

const char *将C ++的双重翻译问题

来自分类Dev

C:将“ static const char * const”分配给“ static const char *”

来自分类Dev

C:将“ static const char * const”分配给“ static const char *”

来自分类Dev

将 char [] 附加到 char* content = realloc(NULL, sizeof(char) * 10);

来自分类Dev

如何从C#将const char *传递给C函数?

来自分类Dev

将char附加到rust的字符串中

来自分类Dev

将char附加到rust的字符串中

来自分类Dev

将char附加到std :: vector <string>的特定位置

来自分类Dev

如何将NULL附加到char数组中?

来自分类Dev

如何将用户输入的char *附加到const char *的初始化中

来自分类Dev

C ++数组const char

来自分类Dev

将const char *传递给C中的函数

来自分类Dev

如何将const char *从python传递到C函数

来自分类Dev

将const char *传递给C中的函数

来自分类Dev

C ++ const char *将变量/ DEFINE放在init上

来自分类Dev

C / C ++ strcmp无法将参数1从'char'转换为'const char *'

来自分类Dev

C ++-错误C2664:'int scanf(const char *,...)':无法将参数1从'int'转换为'const char *'

来自分类Dev

无法将类型为“ const char *”的值分配给类型为“ char”的实体C OOP

来自分类Dev

C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

来自分类Dev

C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

来自分类Dev

Returning strings with const char * in C

来自分类Dev

在C中修改const char *

来自分类Dev

DllImport C Sharp const char*

来自分类Dev

将const char *添加到string_view

来自分类Dev

C中的静态const char * VS const char *

Related 相关文章

  1. 1

    C ++-如何将char附加到char *?

  2. 2

    在 C++ 中将字符串附加到 const char* 时出现编译时错误?

  3. 3

    将C ++ const char *转换为char *

  4. 4

    C将const char *转换为char

  5. 5

    const char *将C ++的双重翻译问题

  6. 6

    C:将“ static const char * const”分配给“ static const char *”

  7. 7

    C:将“ static const char * const”分配给“ static const char *”

  8. 8

    将 char [] 附加到 char* content = realloc(NULL, sizeof(char) * 10);

  9. 9

    如何从C#将const char *传递给C函数?

  10. 10

    将char附加到rust的字符串中

  11. 11

    将char附加到rust的字符串中

  12. 12

    将char附加到std :: vector <string>的特定位置

  13. 13

    如何将NULL附加到char数组中?

  14. 14

    如何将用户输入的char *附加到const char *的初始化中

  15. 15

    C ++数组const char

  16. 16

    将const char *传递给C中的函数

  17. 17

    如何将const char *从python传递到C函数

  18. 18

    将const char *传递给C中的函数

  19. 19

    C ++ const char *将变量/ DEFINE放在init上

  20. 20

    C / C ++ strcmp无法将参数1从'char'转换为'const char *'

  21. 21

    C ++-错误C2664:'int scanf(const char *,...)':无法将参数1从'int'转换为'const char *'

  22. 22

    无法将类型为“ const char *”的值分配给类型为“ char”的实体C OOP

  23. 23

    C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

  24. 24

    C ++错误:无法将'std :: basic_string <char>'转换为'const char *'

  25. 25

    Returning strings with const char * in C

  26. 26

    在C中修改const char *

  27. 27

    DllImport C Sharp const char*

  28. 28

    将const char *添加到string_view

  29. 29

    C中的静态const char * VS const char *

热门标签

归档