c++ - 字符数组中的奇怪字符

标签 c++ arrays char

<分区>

我有以下功能:

char * strAlloc(string str) {
    char * chArr = new char[str.size()];

    for (size_t i = 0; i < str.size(); i++) {
        chArr[i] = str[i];
    }

    return chArr;
}

如果我在 char * chArr = new char[str.size()]; 之后中断,调试器会说如下:

chArr   0x00c38cf8 "ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍýýýý««««««««þîþîþ"

如果我在 for 迭代后休息一下,我会得到这个:

chArr   0x00c38cf8 "***************ýýýý««««««««þîþîþ"

那我做错了什么?

编辑:

size_t const gSize = 15; typedef char * 
TMaze [gSize]; 
Maze[0] = strAlloc ("***************");

在 TMaze 类型中,我需要 char 数组的指针也尝试过 str.size()+1 , 相同的行为

编辑2:

char * strAlloc(string const & str) {
    char * chArr = new char[str.size()+1];

    strcpy(chArr, str.c_str());

    return chArr;
}

做到了!

最佳答案

你不是空终止。为什么不直接使用 strcpy(chArr, str.c_str());

而且您还需要在分配中添加一个:char* chArr = new char[str.size() + 1];

关于c++ - 字符数组中的奇怪字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14223591/

相关文章:

c++ - 如何将 char 数组元素传递给 C++ 中的函数?

c++ - Qt:如何在委托(delegate)绘制事件中渲染时增加 QTablewidget?

c++ - 使具有引用成员的类可复制和可移动

c++ - 在 C++ 中调用内部类成员的情况下是否应该使用 -> 运算符?

Java:防止数组越界

ios - 使用 swift 在文本字段中列出核心数据属性

c++ - 在 C++ 中将单个字符转换为小写 - tolower 返回一个整数

C++循环在按下键时模拟按键

javascript - 如何检查用户名是否相同? Json数组

c - C中char*的指针问题