大小的字符数组来自用户 - CPP

char array with size got from user - cpp

本文关键字:用户 CPP 数组 字符      更新时间:2023-10-16

我想创建一个字符数组(char path[size] = "),同时从用户那里获取"size"。

当我尝试这样的事情时:

int size = getSizeFromUser();
char path[size] = "";

我收到一条警告,说"表达式必须具有常量值"。

我怎样才能做对?

多谢!

我怎样才能做对?

可变长度数组不是标准的 c++。正确的方法是使用 std::vectorstd::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