日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C语言指针申请与释放

發布時間:2023/12/14 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C语言指针申请与释放 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C語言指針申請與釋放

  • 指針申請內存空間
  • 釋放內存空間
  • 示例

指針申請內存空間

1)malloc()函數功能分配所需的內存空間,并返回一個指向它的指針。
void *malloc(size_t size);
size:內存塊的大小,以字節為單位。

2)calloc()函數功能分配所需的內存空間,并返回一個指向它的指針,且設置分配的內存為零。
void *calloc(size_t nitems, size_t size);
nitems:元素個數;
size:元素大小。

3)realloc()函數功能嘗試重新分配的已經申請的內存空間大小。
void *realloc(void *ptr, size_t size);
ptr:指針指向一個要重新分配內存的內存塊;
size:內存塊的新的大小,以字節為單位。

釋放內存空間

在程序運行完成之前,free函數釋放掉所申請的內存空間。
free()函數功能釋放之前調用calloc()、malloc()或realloc()所分配的內存空間。
void free(void *ptr);
ptr:指針指向一個要釋放內存的內存塊。

示例

1)malloc():

#include <stdio.h> #include <string.h> #include <stdlib.h>int main() {char *str;/* 最初的內存分配 */str = (char *) malloc(15);strcpy(str, "runoob");printf("String = %s, Address = %u\n", str, str);if(NULL != str){free(str);//避免指針問題(野指針)str = NULL;}return(0); }

2)calloc()

#include <stdio.h> #include <stdlib.h>int main() {int i, n;int *a;printf("要輸入的元素個數:");scanf("%d",&n);a = (int*)calloc(n, sizeof(int));printf("輸入 %d 個數字:\n",n);for( i=0 ; i < n ; i++ ) {scanf("%d",&a[i]);}printf("輸入的數字為:");for( i=0 ; i < n ; i++ ) {printf("%d ",a[i]);}if(NULL != a){free(a);//避免指針問題(野指針)a= NULL;}return(0); }

3)realloc()

#include <stdio.h> #include <stdlib.h> #include <string.h>int main() {char *str;/* 最初的內存分配 */str = (char *) malloc(15);strcpy(str, "runoob");printf("String = %s, Address = %p\n", str, str);/* 重新分配內存 */str = (char *) realloc(str, 25);strcat(str, ".com");printf("String = %s, Address = %p\n", str, str);if(NULL != str){free(str);//避免指針問題(野指針)str = NULL;}return(0); }

總結

以上是生活随笔為你收集整理的C语言指针申请与释放的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。