A pointer pointing to a dead location than it is called dangling pointer. When ever a function returning an integer than specified return type as int. Whenever a function returning an address of integer then specified return type as int(function returns an address).
Example:
Example:
#include<stdio.h> float *call();void main() { float *ptr; ptr=call(); clrscr(); printf("%d",*ptr); } float * call() { float z=2.5; ++z; return &z; } |
Output: Randam value Explanation: variable z is local variable. Its scope and lifetime are within the function call hence after returning the address of z variable z became dead and pointer is still pointing ptr is still pointing to that location. |
Solution of this problem: Make the variable z is as a static variable. |
0 comments:
Post a Comment