#include <iostream>
using namespace std;
void mm(double* const array, int length)
{
double *p = (double*) malloc(length * sizeof(double));
double *pt = p; //保留初始指针
for (int i = 0; i < length; i++)
{
//① ② 不同时出现 ,比较两者区别 ,两者在赋值的时候没有区别,都能给期望的内存空间赋值,但是①中p的值不变,只是取p后第几个地址, ②中p的值变了 ,p移动了位置,也就不再指向刚开始申请的那段内存
*(p + i) = *(array + i); // ①
*(p ++ ) = *(array + i); //②
}
free(pt);//如果用②赋值,那么必须用pt释放,因为p已经不再是当年的p了 ,而pt还是pt ,仍然让然指向malloc申请的内存
}
int main()
{
double b[] = {1.2, 5.6, 6.9};
int a = sizeof(b) / sizeof(double);
mm(b, a);
return 0;
}