动态内存分配

xiaoxiao2021-02-28  89

#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"); }
转载请注明原文地址: https://www.6miu.com/read-81982.html

最新回复(0)