Construct char vchZero[0] = {}; is illegal on Microsoft compiler. The constant expression for the array size must be an integer greater than zero. For more info please see: http://msdn.microsoft.com/en-us/library/6zxfydcs.aspx
Adding one element seams to be quick and safe fix.