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, the pointer to this function will be dangling, since the fruit group number is destroyed when the function exits //Add static after the fruit array is allocated in the data segment instead of the stack. The lifetime is as long as the program, the function exits with the variable//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:
watermark/2/text/ahr0cdovl2jsb2cuy3nkbi5uzxqvahvtyw5fzxzvbhv0aw9u/font/5a6l5l2t/fontsize/400/fill/i0jbqkfcma== /dissolve/70/gravity/center ">
Programmer's---C language details 22 (function return pointer considerations < dangling pointer >, view memory size The process can allocate)