#include<stdio.h>
#include<stdlib.h>
//malloc()
//calloc()
void main1()
{
int num;
scanf_s("%d", &num);
//double *p = (double *)malloc(sizeof(double)*num);
double *p = (double *)calloc(num, sizeof(double));
for (double *pnum = p, i = 0.0; pnum < p + num; pnum++, i+=1.0)
{
pnum[(int)i] = i;
printf("%lf\n", pnum[(int)i]);
}
double number = 99;
number++; //浮点类型数据也可以用自增运算符
printf("%lf\n", number);
free(p);
system("pause");
}
//动态增加的数组
//realloc
void main()
{
int num;
scanf_s("%d", &num);
int *p = (int *)malloc(sizeof(int)*num);
printf("%x\n", p);
for (int i = 0; i < num; i++)
{
p[i] = i;
printf("%d,%x\n", p[i], p + i);
}
int newnum;
scanf_s("%d", &newnum);
//分配内存空间字节数:(newnum-num)*sizeof(int)
int *newp = realloc(p, newnum); //newnum即数组元素个数增加到多少
printf("\nnewp = %p\n", newp); //newp的值等于p,仍然是数组的首地址
for (int i = num; i < newnum; i++)
{
newp[i] = i;
printf("%d,%x\n", newp[i], &newp[i]);
}
system("pause");
}
动态内存分配
最新推荐文章于 2024-07-10 07:10:59 发布