C++ 通过int变量设置char[]的大小
关于如何使用数据类型int的变量设置数组大小,我做了很多研究,但没有找到任何有用的方法 这里有一个我尝试过的例子,它给了我一个错误,说表达式必须有一个常量值 对不起,如果这个问题很愚蠢,我对c还是很陌生的++C++ 通过int变量设置char[]的大小,c++,arrays,char,C++,Arrays,Char,关于如何使用数据类型int的变量设置数组大小,我做了很多研究,但没有找到任何有用的方法 这里有一个我尝试过的例子,它给了我一个错误,说表达式必须有一个常量值 对不起,如果这个问题很愚蠢,我对c还是很陌生的++ 任何帮助都将不胜感激 您必须使用动态分配 int size = 1337; char *str = new char[size]; 通过这样做,程序将在运行时在堆上分配内存 您不能执行char str[size],因为编译时不知道大小,编译器也不知道必须在堆栈上分配多少空间 当然,请记住
任何帮助都将不胜感激 您必须使用动态分配
int size = 1337;
char *str = new char[size];
通过这样做,程序将在运行时在堆上分配内存
您不能执行char str[size],因为编译时不知道大小,编译器也不知道必须在堆栈上分配多少空间
当然,请记住在使用后删除[]str。您必须使用动态分配
int size = 1337;
char *str = new char[size];
通过这样做,程序将在运行时在堆上分配内存
您不能执行char str[size],因为编译时不知道大小,编译器也不知道必须在堆栈上分配多少空间
当然记得在使用[]str之后删除它。sze在编译时是未知的;C++不支持可变长度数组,所以字符STR [SZE];不是有效的C++。
一种解决方法是使用char*str=new char[sze];但这可能会给您带来问题,因为您必须用后续的delete[]str来平衡这一点;否则你会泄漏内存
如果可以的话,最好使用内置的字符串类std::string。sze在编译时是未知的;C++不支持可变长度数组,所以字符STR [SZE];不是有效的C++。
一种解决方法是使用char*str=new char[sze];但这可能会给您带来问题,因为您必须用后续的delete[]str来平衡这一点;否则你会泄漏内存
<> P>使用内置的字符串类STD::String,最好是。最好的选择是使用STD:String而不是字符数组。如果你是C++的新手,你就不应该使用指针。指针是一种低级的专家工具,主要用于优化实现和低级操作,而不必仅仅是让一些工作。在标准C++中,你不能这么做,但是一些C++编译器有扩展,让你做。考虑到我们有C++标准容器,它不是一个非常有趣的特性。@ KeRekSB,我没有在Windows上编写我的C++程序,或者类似的东西,String。h是不可用的。一个很好的选择的重复可能是使用STD:String而不是字符数组。如果你是C++的新手,你就不应该使用指针。指针是一种低级的专家工具,主要用于优化实现和低级操作,而不必仅仅是让一些工作。在标准C++中,你不能这么做,但是一些C++编译器有扩展,让你做。考虑到我们有C++标准容器,它不是一个非常有趣的特性。@ KeRekSB,我没有在Windows上编写我的C++程序,或者类似的东西,String。h是不可用的。可能的副本