【问题标题】:How to store array of character dynamically? [duplicate]如何动态存储字符数组? [复制]
【发布时间】:2016-09-18 23:54:15
【问题描述】:

从问题本身可以看出,我是 C++ 的新手,而且是指针和动态内存分配。

我想知道如何停止使用像

这样的静态字符串
char str[200]; 

并且应该能够在用户按下回车之前接受输入?

我知道这可以使用“new”来完成,我会使用“delete”来释放内存 但我想不出一种方法来实现这一点。

请客气 :) 我知道std::string,但我只想知道如何自己解决上述问题。

【问题讨论】:

  • 编程中最有用的技能之一就是知道如何搜索cplusplus.com/doc/tutorial/pointerscplusplus.com/doc/tutorial/dynamic
  • 对于任何关心并试图解析这个问题的人:我尝试多次阅读这个问题,最后我能认出的唯一合理的任务是由以下短语提供的:".. 。我知道这可以使用“new”来完成,我会使用“delete”来释放内存,但我想不出一种方法来实现它。”,我认为这是一个要求展示如何使用new/delete 管理字符串缓冲区。
  • @Keshav 好吧,如果您需要知道如何正确使用newdelete 平衡,请查看What is The Rule of Three?

标签: c++ dynamic-memory-allocation


【解决方案1】:

C++ 初学者不需要使用指针、new/delete,也不需要使用数组。事实上,许多专家也会避免使用它们。保持简单

std::string name;
std::cout << "What is your name?" << std::endl;
std::getline(std::cin, name); // read a line from std::cin (standard input)
std::cout << "Hello, " << name << std::endl;

【讨论】:

  • 问题的最后一段:我知道std::string,但只想知道如何自己解决上述问题
  • 我看到了。也许我可能误解了问题的上下文。要么,提问者只是想在学习 C++ 基础的同时以简单的方式使用字符串;否则提问者只是好奇string是如何实现的。
  • @KeshavSharma,“请给我实施”。我们不知道你真正的问题是什么。您可能对此感到惊讶,但重要的是您接受我们不确定您的要求。
  • 和@KeshavSharma,你应该关心这个问题的否决票,因为这意味着其他人不会看到你的问题。如果你想要一个好的答案,那就问一个好的(新颖的)问题!
猜你喜欢
  • 1970-01-01
  • 2012-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-01-29
  • 1970-01-01
  • 2014-12-12
相关资源
最近更新 更多