#include<stdio.h>
int * assignval ( int * x1, int val) {
printf ( "value x1 %d inside x1 %u address of x1 %u\n " , * x1
, x1
, & x1
) ; * x1 = val;
return x1;
}
void main ( ) {
printf ( "value x %d inside x %u address of x %u\n " , * x
, x
, & x
) ; if ( NULL == x) return ;
x = assignval ( x, 0 ) ;
printf ( "value x %d inside x %u address of x %u\n " , * x
, x
, & x
) ; if ( x) { // x contains the address so this will be true
x
= ( int * ) malloc ( sizeof ( int ) ) ; printf ( "value x %d inside x %u address of x %u\n " , * x
, x
, & x
) ; if ( NULL == x) return ;
x = assignval ( x, 10 ) ;
printf ( "value x %d inside x %u address of x %u\n " , * x
, x
, & x
) ; }
}
I2luY2x1ZGU8c3RkaW8uaD4KaW50ICphc3NpZ252YWwgKGludCAqeDEsIGludCB2YWwpIHsKCXByaW50ZigidmFsdWUgeDEgJWQgIGluc2lkZSB4MSAldSBhZGRyZXNzIG9mIHgxICV1XG4iLCAqeDEsIHgxLCAmeDEpOwogICAgKngxID0gdmFsOwogICAgcmV0dXJuIHgxOwp9Cgp2b2lkIG1haW4gKCkgewogICAgaW50ICp4ID0gbWFsbG9jKHNpemVvZihpbnQpKTsKICAgIHByaW50ZigidmFsdWUgeCAlZCAgaW5zaWRlIHggJXUgYWRkcmVzcyBvZiB4ICV1XG4iLCAqeCwgeCwgJngpOwogICAgaWYgKE5VTEwgPT0geCkgcmV0dXJuOwogICAgeCA9IGFzc2lnbnZhbCAoeCwwKTsKICAgIHByaW50ZigidmFsdWUgeCAlZCAgaW5zaWRlIHggJXUgYWRkcmVzcyBvZiB4ICV1XG4iLCAqeCwgeCwgJngpOwogICAgaWYgKHgpIHsgLy8geCBjb250YWlucyB0aGUgYWRkcmVzcyBzbyB0aGlzIHdpbGwgYmUgdHJ1ZQogICAgCXByaW50ZigiXG5cbkluc2lkZSBwYXJ0XG4iKTsKICAgICAgICB4ID0gKGludCAqKW1hbGxvYyhzaXplb2YoaW50KSk7CiAgICAgICAgcHJpbnRmKCJ2YWx1ZSB4ICVkICBpbnNpZGUgeCAldSBhZGRyZXNzIG9mIHggJXVcbiIsICp4LCB4LCAmeCk7CiAgICAgICAgaWYgKE5VTEwgPT0geCkgcmV0dXJuOwogICAgICAgIHggPSBhc3NpZ252YWwgKHgsMTApOwogICAgICAgIHByaW50ZigidmFsdWUgeCAlZCAgaW5zaWRlIHggJXUgYWRkcmVzcyBvZiB4ICV1XG4iLCAqeCwgeCwgJngpOwogICAgfQogICAgcHJpbnRmKCIlZFxuIiwgKngpOwogICAgZnJlZSh4KTsKfQo=