@Sally-E さんの記事で分からなかったint func()内の以下の処理が2となる理由。
num = sizeof(array)/sizeof(array[0]);
これが2になるためには @shiracamus さんのコメントにあるように以下となる
- int *は8バイト
- int は4バイト
stackoverflowの記事を見つけた
http://stackoverflow.com/questions/20721294/size-of-int-and-sizeof-int-pointer-on-a-64-bit-machine
answered Dec 21 '13 at 16:56
Rahul TripathiSize of a pointer should be 8 byte on any 64-bit C/C++ compiler, but the same is not true for the size of int.
64bit OSではint *は8バイト固定だが、intは8固定とは限らない(OSの扱いやすいサイズになる)。
勉強になりました。