fork download
  1. #include <stdio.h>
  2.  
  3. typedef int * int_ptr_t;
  4.  
  5. void f1(int_ptr_t ptr) {
  6. printf("f1 ptr przed malloc: %p\n", ptr);
  7. ptr = (int_ptr_t)malloc(sizeof(int));
  8. printf("f1 ptr po malloc: %p\n", ptr);
  9. }
  10.  
  11. void f2(int_ptr_t *ptr) {
  12. printf("f2 ptr przed malloc: %p\n", *ptr);
  13. *ptr = (int_ptr_t)malloc(sizeof(int));
  14. printf("f2 ptr po malloc: %p\n", *ptr);
  15. }
  16.  
  17. int main(void) {
  18. int_ptr_t ptr = NULL;
  19.  
  20. printf("main ptr: %p\n", ptr);
  21.  
  22. f1(ptr);
  23.  
  24. printf("main ptr po f1: %p\n", ptr);
  25.  
  26. f2(&ptr);
  27.  
  28. printf("main ptr po f2: %p\n", ptr);
  29.  
  30. return 0;
  31. }
Success #stdin #stdout 0.02s 1852KB
stdin
Standard input is empty
stdout
main ptr: (nil)
f1 ptr przed malloc: (nil)
f1 ptr po malloc: 0x882a008
main ptr po f1: (nil)
f2 ptr przed malloc: (nil)
f2 ptr po malloc: 0x882a018
main ptr po f2: 0x882a018