怎么计算动态分配的内存可存储多少元素


int* arr_int = (int*)malloc(2*sizeof(int));//8
double* arr_double = (double*)malloc(2 * sizeof(double));//16

我的环境是win10+vs2017 ,发现上面代码 arr_int里可以存4个int值,arr_double可以存3个double值,再多就报错了。
和我猜想的不一样,我用两种逻辑计算对对不上。按数据类型大小推算:int占用是4个,应该存2个int,double占用2个。
按指针地址为4个字节算也没对上。
所以应该怎么计算呢,看了VS官网也没找到具体介绍