当值不能为常数时,如何解决“表达式必须具有常数”?

时间:2019-05-17 05:38:32

标签: c++ arrays

问题是我的错误输出不断声明“表达式必须具有恒定值”四次。

我已经使用了该站点,并尝试分配内存并将其删除,但没有任何反应。我更改了“ mystr.length();”到一个数字,虽然允许程序运行,但结果无效。

componentDidMount = async() => {

    var token = await AsyncStorage.getItem('accessToken')
    var response =  await this.props.listData({'startDate':,'endDate':},accessToken)

    if(!response.error){
       this.setState({})
    }
}

我只是希望程序能够运行并且不会由于错误而停止,但是,我希望结果是准确的。

1 个答案:

答案 0 :(得分:1)

无需混合使用C ++风格的std :: string和C风格的char数组。如果要使用动态大小的字符串,则需要std :: string。如果您尝试使用char []而事先不知道它的大小-您可能不需要C ++ ...

在使用char []的任何地方尝试考虑std :: string或std :: vector。这是您的问题的直接解决方案的示例:

//char char_array[n + 1];
std::vector<char> char_array(n + 1);