C++ 错误可变大小对象可能未初始化

Hus*_*tif 1 c++

K 是 argv[] 中的一个值,长度在 main 中计算

int main(int argc, char const *argv[]) {
 .
 .
 .

 int k_mer = length - k +1;
 int array_of_kmer[k_mer] = {}; 
 }
Run Code Online (Sandbox Code Playgroud)

Yol*_*ola 6

标准 C++ 没有变长数组。尽管某些实现(例如gcc)可能有。

要声明数组,您需要在编译时知道元素的数量:

const int size = 5;
int arr[size];
Run Code Online (Sandbox Code Playgroud)

甚至更好

std::array<int, size> arr;
Run Code Online (Sandbox Code Playgroud)

如果您需要可变长度数组,那么std::vector.

int size = calculate();
std::vector<int> v(size);
Run Code Online (Sandbox Code Playgroud)