For dynamic count of the objects , Please try vector<> instead of array[]
#include<bits/stdc++> 
using namespace std;
int main()
{
    int n, i;
    string bit_string;
    cin >> n;  // size of Bitset array.
    vector<bitset<8>> arr;      //size()=>0
    arr.resize(n);      //size()=>n
    for (i = 0; i < n; i++)
    {
        cin >> bit_string;
        bitset<8>& br = arr[i]; //get the i of n
        int maxlen = 8;
        if (bit_string.size() <= 8)
            maxlen = bit_string.size();
        else
            cout << "warning invalid len " << bit_string.size() << " of " << bit_string << endl;
        for (int j = 0; j < maxlen; j++)
        {
            if (bit_string[j] == '1')
                br.set(j, true);
        }
        //cout << endl << br << endl;   //output test
    }
    return 0;
}
If you still want to use array ,  please try this way 
#include<bits/stdc++> 
using namespace std;
int main()
{
    int n, i;
    string bit_string;
    cin >> n;  // size of Bitset array.
    bitset<8>* arr = new bitset<8>[n];
    for (i = 0; i < n; i++)
    {
        cin >> bit_string;
        bitset<8>& br = arr[i]; //get the i of n
        int maxlen = 8;
        if (bit_string.size() <= 8)
            maxlen = bit_string.size();
        else
            cout << "warning invalid len " << bit_string.size() << " of " << bit_string << endl;
        for (int j = 0; j < maxlen; j++)
        {
            if (bit_string[j] == '1')
                br.set(j, true);
        }
        //cout << endl << br << endl;   //output test
    }
    delete[] arr;   //IMPROTAND , delete the array and free memory
    return 0;
}