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 );