That answer feels like a cheat to me - aren't both sizeofs implementation defined, so it would be possible (although arguably silly) to have an implementation where char and int were the same size?
sizeof(char) has to be 1 in both C and C++ (5.3.3, para 1), and this is the smallest addressable amount, so should be a byte on most machines. "Plain ints have the natural size suggested by the architecture of the execution environment", which on most modern machines is not a single byte, but 4 or 8. Also C++ says that an int must store INT_MAX, which according to the C standard has to be at least 32767.
So you could have sizeof(char)=sizeof(int), but it would have to be on at least 16-bit addressable machine, with a natural machine size of 16-bits. Possible but very unusual.
The compiler for the TI C55x family [1] of fixed-point DSPs is implemented that way: sizeof(char) == 1 and sizeof(int) == 1, both 16-bit fields. A practical consequence is that you can't easily use the same struct header files, for example, on a more conventional platform. Another is that ASCII strings use twice the space.
Well, sizeof(char) is 1 by definition, so that will never change. Now sizeof(int) is indeed implementation defined (only a minimal range is guaranteed), so technically two different C or C++ implementations might give different results.
It's even possible that sizeof(int) could be 1 on a certain architecture. In that case, both C and C++ would behave in the same way. It might happen on some architectures that don't support byte access and have 16bit-wide chars and ints?