memcpy 应用练习;
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void show_array(const double *datas, int n);
double * init_array(int n, double default_value);
int main()
{
double * datas1;
double * datas2;
datas1 = init_array(10, 2.0);
datas2 = init_array(30, 5.0);
memcpy(datas2, datas1, 10 * sizeof(double));
show_array(datas2, 30);
printf("==========================\n");
memcpy((datas2 + 20), datas1, 10 * sizeof(double));
show_array(datas2, 30);
return 0;
}
void show_array(const double *datas, int n)
{
int i;
for (i = 0; i < n; ++i)
{
printf("%f ", *(datas + i));
}
putchar('\n');
}
double * init_array(int n, double default_value)
{
int i;
double *datas;
datas = (double *)malloc(n * sizeof(double));
if (datas == NULL)
{
printf("application memory failure!!");
}
for (i = 0; i < n; ++i)
{
*(datas + i) = default_value;
}
return datas;
}