> 2. Realize the program does not work because the types have different sizes now
Such an enormous amount of time in C/C++ programming is devoted to accounting for the size of an int, long, wchar_t, and long long being unreliable when porting.
This is why D has int fixed at 32 bits, long fixed at 64 bits. It's amazing how the problems just melt away.
Now, just remember to use size_t for everything used as an index, and you're good to go. (ptrdiff_t is almost never needed.)
Such an enormous amount of time in C/C++ programming is devoted to accounting for the size of an int, long, wchar_t, and long long being unreliable when porting.
This is why D has int fixed at 32 bits, long fixed at 64 bits. It's amazing how the problems just melt away.
Now, just remember to use size_t for everything used as an index, and you're good to go. (ptrdiff_t is almost never needed.)