Guest User

Untitled

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