Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.29 KB | None | 0 0
  1. #include <stdio.h>
  2. char *x;
  3. char *y;
  4. int array[3][4];
  5. int value;
  6. void mdump(char *x,char *y);
  7. int two_d_fetch(int *b, int s, int m, int n,int i,int j);
  8. void two_d_store(int *b, int s, int m, int n,int i,int j,int value);
  9. int two_d_fetch_row_major(void *b,int s,int m,int n,int i,int j);
  10. void two_d_store_rowMajor(void *b,int s,int m,int n,int i,int j,int value);
  11.  
  12. int main()
  13. {
  14.     char n[12]="Dinu Sandaru";
  15.  
  16.     x=&n[0];
  17.  
  18.     y=&n[11];
  19.     char ch;
  20.     char *pnt;
  21.     pnt = &ch;
  22.     *pnt='c';
  23.     printf("the memory address of the variable-%p \n",pnt);
  24.     printf("value of the variable-%c \n",*pnt);
  25.     printf("location of the pointer-%p \n", &pnt);
  26.     mdump(x,y);
  27.  
  28.     printf("\n");
  29.     int *b;
  30.  
  31.  
  32.     b=&array[0][0];
  33.     int i;
  34.     int j;
  35.     int k;
  36.         for(i=0;i<4;i++){
  37.         for(j=0;j<3;j++){
  38.             printf("Enter the number- \n");
  39.             scanf("%d",&value);
  40.             //k=sizeof(value);
  41.             k=1;
  42.             //two_d_store(b, k, 4, 3, i, j, value);
  43.             two_d_store_rowMajor(b, k, 4, 3, i, j, value);
  44.         }
  45.         }
  46.         printf("Given Matrix-\n");
  47.     for(i=0;i<3;i++){
  48.         for(j=0;j<4;j++){
  49.             printf("%d ",two_d_fetch(b, k, 3, 4,  i,  j));
  50.         }
  51.         printf("\n");
  52.         }
  53.  
  54.         mdump(&array[0][0],&array[2][3]);
  55.  
  56.         printf("\n");
  57.         printf("Row major order\n");
  58.         for(i=0;i<3;i++){
  59.         for(j=0;j<4;j++){
  60.     printf("%d ",two_d_fetch_row_major(b, k, 3, 4,  i,  j));
  61.         }
  62.         }
  63.         printf("\n");
  64.         printf("Column major order\n");
  65.         for(i=0;i<4;i++){
  66.         for(j=0;j<3;j++){
  67.             printf("%d ",two_d_fetch(b, k, 3, 4,  j,  i));
  68.         }
  69.         }
  70.     return 0;
  71. }
  72. void mdump(char *x,char *y)
  73. {
  74.     char *adrs;
  75.     printf("Address               Words in Hexadecimal               ASCII character\n");
  76.     printf("--------------------------------------------------------------------------------\n");
  77.     for (adrs=x;adrs<=y;adrs++){
  78.         printf("%p \t\t  %X\t\t\t\t\t  %d\n",adrs,*adrs,*adrs);
  79.     }
  80. }
  81.  
  82.  
  83. void two_d_store(int *b,int  s,int  m,int n,int i, int j,int value){
  84.     int *a;
  85.     a=b+s*(n*i+j);
  86.     *a=value;
  87.  
  88. }
  89.  
  90. int two_d_fetch(int *b, int s, int m, int n,int  i, int j){
  91.     int *a;
  92.     a=b+s*(n*i+j);
  93.     return *a;
  94.  
  95. }
  96.  
  97.  
  98. void two_d_store_rowMajor(void *b,int s,int m,int n,int i,int j,int value){
  99.       int element = i*n+j;
  100.       memcpy(b+element*s,&value,s);
  101. }
  102.  
  103.  
  104. int two_d_fetch_row_major(void *b,int s,int m,int n,int i,int j){
  105.       int element = i*n+j;
  106.       return b+element*s;
  107. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement