繁体   English   中英

XCode中的字符串(C ++)

[英]String (C++) in XCode

有没有人知道为什么在XCode中,当你做一些简单的事情

string str;
cout << "input string";
getline(cin, str);
cout << str;

你会得到malloc:***错误对象01x100000240:被释放的指针没有分配错误? 谢谢。

这是xcode中的一个错误。 要修复它,请在程序的最开头粘贴这些行(在任何#include语句之前):

#define _GLIBCXX_FULLY_DYNAMIC_STRING 1
#undef _GLIBCXX_DEBUG
#undef _GLIBCXX_DEBUG_PEDANTIC

这听起来像是您实现中的错误。 你可能遗漏了一些重要的东西,尝试一个完整的测试用例:

#include <iostream>
#include <ostream>
// iostream not required to declare operator<<(ostream&,char const*)
// but ostream is
#include <string>

int main() {
  using namespace std;
  cout << "Input: ";
  string line;
  if (!getline(cin, line)) {
    clog << "Input error.\n";
    return 1;
  }
  cout << "You entered: " << line << '\n';
  return 0;
}

我通过Google在XCode中发现了一些对此错误的引用。 我发现最好的解决方法是

解决方案是双击目标以打开其“信息”窗口,转到“构建”选项卡,然后向下滚动到“GCC 4.2 - 预处理”部分。 在本节中有一个名为“预处理器宏”的设置,默认情况下有两个条目,“_ GLIBCXX_DEBUG = 1”和“_GLIBCXX_DEBUG_PEDANTIC = 1”。 删除这些条目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM