Programa 1:
El siguiente programa dará una falla de segmentación ya que ‘A’ era local para la función:
C
// C program to illustrate the concept of // returning pointer from a function #include <stdio.h> // Function returning pointer int* fun() { int A = 10; return (&A); } // Driver Code int main() { // Declare a pointer int* p; // Function call p = fun(); printf("%p\n", p); printf("%d\n", *p); return 0; }
Producción:
A continuación se muestra la salida del programa anterior:
Explicación:
obtiene
Programa 2:
C
// C program to illustrate the concept of // returning pointer from a function #include <stdio.h> // Function that returns pointer int* fun() { // Declare a static integer static int A = 10; return (&A); } // Driver Code int main() { // Declare a pointer int* p; // Function call p = fun(); // Print Address printf("%p\n", p); // Print value at the above address printf("%d\n", *p); return 0; }
Producción:
0x601038 10
Publicación traducida automáticamente
Artículo escrito por Subhajit Guha Thakurta y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA