动态内存的分配用法和构造动态一维数组
生活随笔
收集整理的這篇文章主要介紹了
动态内存的分配用法和构造动态一维数组
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
int *?pArr;?
pArr = (int *)malloc(4 * length);
相當于?構造了這樣一個數組? ?int?pArr[length];
#include <stdio.h> #include <malloc.h>void function(int * q) {//*p = 200; //報錯 因為沒有變量*p//q = 200; //報錯,類型不一致//**q = 200; //*q是一個整型變量,只有指針變量前面才能加 **q = 200;//增加free(q) free(q); //釋放q指向的內存地址 q指針沒有指向}int main() {int *p = (int *)malloc(sizeof(int));*p = 10;printf("%d\n", *p); //10function(p);printf("%d\n", *p); //200/** 構造動態一維數組*/int a[5]; //靜態的一維數組 int 占4個字節 共占20個字節int length;int * pArr;printf("請輸入一維數組的元素個數:\n");scanf_s("%d", &length);pArr = (int *)malloc(4 * length); //這里構造了一個動態的一維數組//對動態的一維數組進行操作for (int i = 0; i< length; ++i){scanf_s("%d", &pArr[i]);}printf("華麗的分割線------------------------\n");for (int i = 0; i < length; ++i){printf("%d\n", pArr[i]);}while (true){}return 0; }?
?
?free(pArr);? 手動釋放動態分配的內存
#include <stdio.h> #include <malloc.h>void function(int * q) {//*p = 200; //報錯 因為沒有變量*p//q = 200; //報錯,類型不一致//**q = 200; //*q是一個整型變量,只有指針變量前面才能加 **q = 200;//增加free(q) free(q); //釋放q指向的內存地址 q指針沒有指向}int main() {int *p = (int *)malloc(sizeof(int));*p = 10;printf("%d\n", *p); //10function(p);printf("%d\n", *p); //200/** 構造動態一維數組*/int a[5]; //靜態的一維數組 int 占4個字節 共占20個字節int length;int * pArr;printf("請輸入一維數組的元素個數:\n");scanf_s("%d", &length);pArr = (int *)malloc(4 * length); //這里構造了一個動態的一維數組//對動態的一維數組進行操作for (int i = 0; i< length; ++i){scanf_s("%d", &pArr[i]);}printf("華麗的分割線------------------------\n");for (int i = 0; i < length; ++i){printf("%d\n", pArr[i]);}free(pArr);//手動釋放動態分配的內存while (true){}return 0; }?
總結
以上是生活随笔為你收集整理的动态内存的分配用法和构造动态一维数组的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Netlink实现热拔插监控
- 下一篇: SaaS 客户生命周期(逐字稿+PPT)