c++ - 动态初始化字符数组

标签 c++ c arrays multidimensional-array

我想在运行中使用指针初始化一个字符数组。即用户输入不知道数组的大小。用户一直输入直到按下返回。这里的条件是:

  • 使用指针初始化
  • 不要提前传递数组的大小。

最佳答案

假设一道 C 题,怎么样(未测试):

char *arr = malloc(10);
size_t size = 10, index = 0;
int ch;
while ((ch = getc(stdin)) != EOF && ch != '\n' && ch != '\r') {
    if (index >= size) {
        size *= 2;
        arr = realloc(arr, size); /* XXX check it first. */
    }
    arr[index++] = ch;
}
arr[index] = 0;

如果这真的是你想要的 C++ 问题 std::getlinestd::string .

关于c++ - 动态初始化字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11966049/

相关文章:

c++ - 在 (x,y) 平面中选取随机格点

Linux 上的 C++ GetModuleBase

javascript - 以声明方式分配 javascript 数组属性

java - 在Java中的公共(public)数组中按属性对json对象列表进行分组

c++ - 什么类型有多维数组?

c++ - 当 std::map::insert 找到元素时,它仍然构造对象的实例。我怎样才能阻止这个?

c - 使用 scanf 忽略分隔字符

javascript - 填充对象时,神秘的 "remove" key 插入到我的对象中

c - 什么 gdbus 函数返回子对象节点列表?

c - 使用socket写入从nfq读取的内容-绑定(bind)到特定ip地址失败