This is not allowed.  You simply cannot declare an array of whose size is not known at compile time.  Moreover, in the case of `bool`, you cannot even use the standard `vector<T>` work-around either, because `std::vector<bool>` "is not a standard vector and does not contain `bool`s" (S. Meyers, "Effective STL").  Consequently, the following code does not work
```c++
std::vector<bool> v(n, false);
// ...
f(n, &v[0]);
```
If you're going to continue with this design (all methods taking a `bool*`), then you *will* need to implement manual memory management through `new` and `delete`.