arrays - 从类 String 的函数返回一个指针
问题描述
我正在编写一个 String 类,它是 std :: string 类的简化对应物。有一个 Data() 方法——它返回一个指向数组(字符串)开头的指针。在这段代码中,我得到了 error free (): double free detected in tcache 2。我怀疑我错误地从函数返回了一个指针。你能告诉我怎么做吗?
#include <iostream>
class String {
public:
const char* Data() const;
char* str;
size_t size;
size_t capacity;
};
const char* String::Data() const {
return str;
}
int main(int argc, char const *argv[]) {
String s(100, 'a');
String s1(s);
int ans = (s.Data() == s1.Data());
}
解决方案
推荐阅读
- cmake - cmake bootstrapping 找不到 ncurses
- reactjs - Apollo 客户端调用每个突变和查询两次(React)
- angular - ngx-mat-select-search 覆盖了我的滚动条
- c# - 如何扩展 nuget 包?
- fonts - 如何从网站下载/提取字体?
- go - 错误处理:提取错误上下文
- javascript - Hasura Graphql 查询运算符的神秘定义
- android - 如何将数据从片段传递到另一个片段?
- python - 运行 JS 脚本的 Django 需要返回 Not Found 的 JSON(静态收集)
- c++ - 抑制从 cin 到 cout 的回声