Main content: function return pointer considerations < dangling pointer >, viewing the amount of memory the process can allocate
#include <stdio.h> char * favorite_fruit () {static char fruit[] = "Apple"; Without static, this function also returns the pointer as well as dangling, because when the function exits the fruit group number is destroyed //Added static after the fruit array is allocated in the data segment, not the stack, the lifetime is as long as the program, the function exits the variable//is still valid return fruit;} int main () {char *a = favorite_fruit ();p rintf ("%s\n", a);/* * See how much memory your process can allocate * Total allocated memory depends on the system configuration of */int MB = 0; while (malloc (1 <<)) ++kb; printf ("Allocated%d KB total\n", KB); return 0;}
Output:
Program Ape's---C language details 22 (function return pointer considerations < dangling pointer >, view the amount of memory the process can allocate)