大小的字符数组来自用户 - CPP
char array with size got from user - cpp
我想创建一个字符数组(char path[size] = "),同时从用户那里获取"size"。
当我尝试这样的事情时:
int size = getSizeFromUser();
char path[size] = "";
我收到一条警告,说"表达式必须具有常量值"。
我怎样才能做对?
多谢!
我怎样才能做对?
可变长度数组不是标准的 c++。正确的方法是使用 std::vector
或 std::string
而不是原始数组:
int size = getSizeFromUser();
std::string path(size,' ');
为了创建一个具有用户大小的表,您必须在堆上分配内存
int size = 4;
char *path = new char[size];
使用数组后,您必须手动将其从堆中删除 删除路径;
如果你声明char path[size];
那么在编译时必须知道大小。您在运行时读取它,因此需要使用动态内存分配,例如char* path = new char[size];
,并在完成调用delete []path;
时调用。
如果您希望这是一个包含size
可见字符的字符串,请考虑 C 字符串以 null 结尾,这意味着您必须在数组末尾保留一个额外的char
并将其设置为 0
。
对于C++程序来说,更好的解决方案可能是使用 std::string
而不是 char*
.
创建数组时,其大小必须是常量。
如果你想要一个动态大小的数组,你必须为它分配内存,当你完成它时,你还需要释放它。
简单地说,所有这些总是很高兴使用std::string
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- Linux的Cpp上的计时器
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 命名空间中具有.h和.cpp文件的类
- 内置函数可查看CPP中的成员变量
- C++如何通过用户输入删除列表元素
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- Cpp-Tuple使用带有变量的get
- Arduino-Makefile:编译器无法编译用户库 cpp 文件
- 从用户定义的头文件调用函数时出现未定义的引用错误,其实现位于.cpp文件中
- 作为传递给 CPP 类构造函数的参数的用户定义函数
- 来自 cpp首选项的用户定义的 const char* 文字示例
- Cpp:Cpp中的JSON解析器,提供支持序列化/反序列化功能,将JSON对象转换为用户定义的类
- 大小的字符数组来自用户 - CPP
- Msbuild不导入Microsoft.Cpp.x64用户选项
- 修改cpp中当前用户的定义
- C: 用户约书亚桌面游戏项目 SFML项目测试渲染.cpp | 15 |错误:'类s
- CPP/Gdb 返回 0;导致所有用户的会话登录