Guest User

Untitled

a guest
Apr 22nd, 2018
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.03 KB | None | 0 0
  1. /**
  2. * jachermocilla@gmail.com
  3. *
  4. * $ gcc -fno-common -c -o binding.o binding.c
  5. * $ gcc -fno-commin -o binding.exe binding.c
  6. *
  7. */
  8.  
  9. #include <stdio.h>
  10. #include <stdlib.h>
  11. #include <string.h>
  12.  
  13.  
  14. //global variable of primitive type, initialized to non-zero
  15. char data_global_initialized_nonzero[32]="JACH_IN_DATA";
  16.  
  17. //global variable of primitive type, initialized to zero
  18. int bss_global_initialized_zero=0;
  19.  
  20. //structures
  21. struct _bss_struct{
  22. char field1;
  23. short field2;
  24. }bss_global_struct;
  25.  
  26. //global variable of string
  27. char bss_global[32];
  28.  
  29. //global variable, 2d array
  30. int bss_global_matrix[30][30];
  31.  
  32. //a global pointer variable
  33. char *bss_global_pointer;
  34.  
  35. //a function with a parameter
  36. int text_func(char stack_parameter[32]){
  37. printf("stack_parameter: %p\n",&stack_parameter);
  38. return 0;
  39. }
  40.  
  41. //a function, program entry point
  42. int main(){
  43. char stack_local[32]="JACH_IN_STACK_LOCAL";
  44. int *stack_local_pointer; //local pointer variable
  45.  
  46.  
  47. strcpy(bss_global,"JACH_IN_BSS");
  48.  
  49. bss_global_pointer=(char *)malloc(sizeof(32)); //allocate memory
  50. strcpy(bss_global_pointer,"JACH_IN_HEAP");
  51.  
  52. stack_local_pointer=(int *)malloc(sizeof(int)); //allocate memory
  53. *stack_local_pointer=40;
  54.  
  55. //display the logical address at runtime
  56. printf("text_main: %p\n",(void *)main);
  57. printf("text_func: %p\n",(void *)text_func);
  58. printf("data_global_initialized_nonzero: %p\n",&data_global_initialized_nonzero);
  59. printf("bss_global_initialized_zero: %p\n",&bss_global_initialized_zero);
  60. printf("bss_global_struct: %p\n",&bss_global_struct);
  61. printf("bss_global: %p\n",&bss_global);
  62. printf("bss_global_matrix: %p\n",&bss_global_matrix);
  63. printf("stack_local: %p\n",&stack_local);
  64. text_func("JACH_IN_STACK_PARAM");
  65. printf("bss_global_pointer: %p\n",&bss_global_pointer);
  66. printf("pointed to by bss_global_pointer (in heap): %p\n",(void *)bss_global_pointer);
  67. printf("stack_local_pointer: %p\n",&stack_local_pointer);
  68. printf("pointed to by stack_local_pointer (in heap): %p\n",(void *)stack_local_pointer);
  69.  
  70. return 0;
  71. }
Add Comment
Please, Sign In to add comment