c++ - Creating an int array with a non-const size -
i'm making plugin game , i've got following problem:
i want let user choose radius, since c++ doesn't let me create array variable size can't custom radius.
this works fine
const int numelements = 25; const int arrsize = numelements * 2 + 2; int vehs[arrsize]; //0 index size of array vehs[0] = numelements; int count = get_ped_nearby_vehicles(player_ped_id(), vehs); but dosen't:
int radius = someothervariableforradius * 2; const int numelements = radius; const int arrsize = numelements * 2 + 2; int vehs[arrsize]; //0 index size of array vehs[0] = numelements; int count = get_ped_nearby_vehicles(player_ped_id(), vehs); is there possible way of modifing const int without creating errors in
int vehs[arrsize]; ?
array sizes must compile-time constants in c++.
in first version, arrsize compile-time constant because value can calculated during compile-time.
in second version, arrsize not compile-time constant because value can calculated @ run-time (because depends on user input).
the idiomatic way solve use std::vector:
std::vector<int> vehs(arrsize); //0 index size of array vehs[0] = numelements; and pointer underlying array, call data():
int count = get_ped_nearby_vehicles(player_ped_id(), vehs.data());
Comments
Post a Comment