Advertisement
xathrya

pointer everywhere 2

Sep 8th, 2017
114
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.30 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. int main()
  5. {
  6.     char fakta[256]  = "Satria Ady Pradana ganteng amat";
  7.     char fakta2[256] = "Satria Ady Pradana rajin menabung";
  8.     char fakta3[256] = "Satria Ady Pradana lelaki idaman calon mertua";
  9.     printf("data:\n%s\n%s\n%s\n\n", fakta, fakta2, fakta3);
  10.  
  11.     char* const var1 = fakta;
  12.     printf("var1 = %s\n\n", var1);
  13.  
  14.     char** var_arr = (char**) malloc(3 * sizeof(void*));
  15.     printf("[P] var_arr  => %p\n", var_arr);
  16.     var_arr[0] = fakta;
  17.     var_arr[1] = fakta2;
  18.     var_arr[2] = fakta3;
  19.     printf("Fakta ditunjuk var_arr  =>\n%s\n%s\n%s\n\n", var_arr[0],var_arr[1],var_arr[2]);
  20.  
  21.     char** var_arr2 = (char**) malloc(3 * sizeof(void*));
  22.     printf("[P] var_arr2 => %p\n", var_arr2);
  23.     var_arr2[0] = fakta2;
  24.     var_arr2[1] = fakta3;
  25.     var_arr2[2] = fakta;
  26.     printf("Fakta ditunjuk var_arr2 =>\n%s\n%s\n%s\n\n", var_arr2[0],var_arr2[1],var_arr2[2]);
  27.  
  28.  
  29.     char* const* var2 = var_arr;
  30.     printf("var2[0] = %s\n\n", var_arr[0]);
  31.  
  32.     // Ini bakal error
  33.     printf("Mengubah alamat:\n");
  34.     var2[1] = var_arr2[2];
  35.  
  36.     // Ini nggak
  37.     printf("Mengubah data:\n");
  38.     fakta[5] = 'A';
  39.     printf("data=%s\n", fakta);
  40.  
  41.     var1[5]  = 'a';
  42.     printf("data=%s\n", fakta);
  43.  
  44.     var2[0][5] = 'A';
  45.     printf("data=%s\n", fakta);
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement