C语言内存分配

xiaoxiao2021-02-28  99

#include <stdio.h> #include <stdlib.h> int main(){ int *ptr = NULL; int num, i; printf("请输入待录入整数的个数:"); scanf("%d", &num); ptr = (int *) malloc(num * sizeof(int)); for(i = 0; i < num; i++){ printf("正在录入第%d个整数:",i + 1); scanf("%d", &ptr[i]); } for(i = 0; i < num; i++){ printf("第%d个整数是:",i + 1); printf("%d ", ptr[i]); } putchar('\n'); free(ptr); return 0; } #include <stdio.h> #include <stdlib.h> int main(){ int *ptr; ptr = (int *)malloc(sizeof(int)); if(ptr == NULL) { printf("分配内存失败"); exit(1); } printf("请输入一个整数:"); scanf("%d", ptr); printf("你输入的整数是:%d", *ptr); free(ptr);//释放内存空间 return 0; } #include <stdio.h> #include <stdlib.h> #include <String.h> #define N 10 int main(){ int *ptr = NULL; int i; ptr = (int *) malloc(N * sizeof(int)); // ptr = (int *) calloc(N * sizeof(int));//等价 if(ptr == NULL){ exit(1); } memset(ptr, 0, N *sizeof(int)); for(i = 0; i < N; i++){ printf("%d ", ptr[i]); } putchar('\n'); free(ptr); return 0; } #include <stdio.h> #include <stdlib.h> #include <string.h> int main(void){ int *ptr1; int *ptr2; ptr1 = (int *)malloc (10 * sizeof(int)); ptr2 = (int *)malloc (20 * sizeof(int)); //将ptr1拷贝到ptr2; memcpy(ptr2, ptr1, 10) ; free(ptr1); //..... free(ptr2); return 0 ; } #include <stdio.h> #include <stdlib.h> int main(void){ int i, num; int count = 0; int *ptr = NULL; do{ printf("请输入一个整数:-1表示结束:"); scanf("%d", &num); count++; ptr = (int *) realloc(ptr, count * sizeof(int));//动态分配 if(ptr == NULL){ exit(1); } ptr[count - 1] = num; }while(num != -1); printf("请入的整数分别是:"); for(i = 0; i < count; i++){ printf("%d ", ptr[i]); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-84451.html

最新回复(0)