1. 程式人生 > >c語言指針跨函數使用內存

c語言指針跨函數使用內存

malloc ali ext ado 地址 函數 oss ges sha

#include <stdio.h> #include <malloc.h> //動態內存跨函數使用 void f(int ** q) { int j = 20; printf("_______f函數裏替換前輸出___________\n"); printf("*q的值即*p的地址是%d\n",*q); printf("**q的值即*p的值是%d\n",**q); *q = (int * )malloc(sizeof(int)); **q = j; printf("_______f函數裏替換後輸出___________\n"); printf("*q的值即*p的地址是%d\n",*q); printf("**q的值即*p的值是%d\n",**q); } int main(void) { int i = 10; int * p ; p = &i; printf("_______main函數調用f函數之前的輸出________\n"); printf("i的地址是%d\n",&i); printf("p的地址是%d\n",&p); printf("*p的值是%d\n",*p); printf("*p的地址是%d\n",&*p); f(&p); printf("_______main函數調用f函數之後的輸出________\n"); printf("i的地址是%d\n",&i); printf("p的地址是%d\n",&p); printf("*p的值是%d\n",*p); printf("*p的地址是%d\n",&*p); return 0; }

輸出結果:

技術分享圖片




微信公眾號:

技術分享圖片

c語言指針跨函數使用內存