#include <stdio.h>
typedef int * int_ptr_t;
void f1( int_ptr_t ptr) {
printf ( "f1 ptr przed malloc: %p\n " , ptr
) ; ptr
= ( int_ptr_t
) malloc ( sizeof ( int ) ) ; printf ( "f1 ptr po malloc: %p\n " , ptr
) ; }
void f2( int_ptr_t * ptr) {
printf ( "f2 ptr przed malloc: %p\n " , * ptr
) ; * ptr
= ( int_ptr_t
) malloc ( sizeof ( int ) ) ; printf ( "f2 ptr po malloc: %p\n " , * ptr
) ; }
int main( void ) {
int_ptr_t ptr = NULL;
printf ( "main ptr: %p\n " , ptr
) ;
f1( ptr) ;
printf ( "main ptr po f1: %p\n " , ptr
) ;
f2( & ptr) ;
printf ( "main ptr po f2: %p\n " , ptr
) ;
return 0 ;
}
I2luY2x1ZGUgPHN0ZGlvLmg+Cgp0eXBlZGVmIGludCAqIGludF9wdHJfdDsKCnZvaWQgZjEoaW50X3B0cl90IHB0cikgewogIHByaW50ZigiZjEgcHRyIHByemVkIG1hbGxvYzogJXBcbiIsIHB0cik7CiAgcHRyID0gKGludF9wdHJfdCltYWxsb2Moc2l6ZW9mKGludCkpOwogIHByaW50ZigiZjEgcHRyIHBvIG1hbGxvYzogJXBcbiIsIHB0cik7Cn0KCnZvaWQgZjIoaW50X3B0cl90ICpwdHIpIHsKICBwcmludGYoImYyIHB0ciBwcnplZCBtYWxsb2M6ICVwXG4iLCAqcHRyKTsKICAqcHRyID0gKGludF9wdHJfdCltYWxsb2Moc2l6ZW9mKGludCkpOwogIHByaW50ZigiZjIgcHRyIHBvIG1hbGxvYzogJXBcbiIsICpwdHIpOwp9CgppbnQgbWFpbih2b2lkKSB7CiAgaW50X3B0cl90IHB0ciA9IE5VTEw7CiAgCiAgcHJpbnRmKCJtYWluIHB0cjogJXBcbiIsIHB0cik7CiAgCiAgZjEocHRyKTsKICAKICBwcmludGYoIm1haW4gcHRyIHBvIGYxOiAlcFxuIiwgcHRyKTsKICAKICBmMigmcHRyKTsKICAKICBwcmludGYoIm1haW4gcHRyIHBvIGYyOiAlcFxuIiwgcHRyKTsKICAgIAogIHJldHVybiAwOwp9