data1 = newchar(200); // data1 points to a single char with value 200.
data2 = newchar[200]; // data2 points to an array of 200 char with unspecified values.
> char is signed, by default, with Visual C++ and GCC; not sure about Clang, but I suspects it's the same.
In practice, whether char is a signed integral type or not depends on the hardware platform, and not on the vendor of the compiler. For instance, with all three compilers (Microsoft C++, gcc and clang) char is signed on x86 platforms and unsigned on MIPS platforms.
But I thought the Microsoft compiler used the same char type across all the platforms it used to support: i386, DEC Alpha, PowerPC and MIPS. I remember all kinds of memory alignment issues, but nothing to do with sign issues.
Checking MSDN I see all versions of the compiler for mobile devices share the /J switch (which changes the default char type from signed to signed) with the regular compiler. And the ARM cross-compiler provided with Visual Studio 2012 also has this /J switch.