创建一个字符串,使用前一个整数作为大小

时间:2015-07-02 23:49:29

标签: c++ arrays string input

为什么不能以这种方式创建一个char数组?

int main() 
{
    int len;

    cin>>len;
    char input_str[len];

    cin>>input_str;
    cout<<input_str;


    return 0;
}

1 个答案:

答案 0 :(得分:0)

如果在运行时不知道数组的大小,则无法使用静态数组。相反,您可以使用指针并使用“malloc”或“new”为动态分配内存:

1)首先检查用户是否输入了有效的int

2)一旦你有一个有效的int工作,你可以使用...

char *input_str = new char[len];

对于C ++,或者你必须坚持使用普通的旧C语言......

char *input_str = (char *)malloc(len * sizeof(char));