As @wohlstad pointed out, C arrays are non-copyable. I have to use the way of using a temporary bar variable, set the members and provide this to push_back()
    bar tempBar;
    
    tempBar.barInt  = 1;
    strcpy( tempBar.barChar, fooString );
    foo.push_back( tempBar );