fork(2) download
  1. #include<stdio.h>
  2. int *assignval (int *x1, int val) {
  3. printf("value x1 %d inside x1 %u address of x1 %u\n", *x1, x1, &x1);
  4. *x1 = val;
  5. return x1;
  6. }
  7.  
  8. void main () {
  9. int *x = malloc(sizeof(int));
  10. printf("value x %d inside x %u address of x %u\n", *x, x, &x);
  11. if (NULL == x) return;
  12. x = assignval (x,0);
  13. printf("value x %d inside x %u address of x %u\n", *x, x, &x);
  14. if (x) { // x contains the address so this will be true
  15. printf("\n\nInside part\n");
  16. x = (int *)malloc(sizeof(int));
  17. printf("value x %d inside x %u address of x %u\n", *x, x, &x);
  18. if (NULL == x) return;
  19. x = assignval (x,10);
  20. printf("value x %d inside x %u address of x %u\n", *x, x, &x);
  21. }
  22. printf("%d\n", *x);
  23. free(x);
  24. }
  25.  
Success #stdin #stdout 0s 4652KB
stdin
Standard input is empty
stdout
value x 0  inside x 4200419936 address of x 4046733720
value x1 0  inside x1 4200419936 address of x1 4046733728
value x 0  inside x 4200419936 address of x 4046733720


Inside part
value x 0  inside x 4200424080 address of x 4046733720
value x1 0  inside x1 4200424080 address of x1 4046733728
value x 10  inside x 4200424080 address of x 4046733720
10