Advertisement
ben1939

תרגיל 6 סעיף ב

Dec 18th, 2013
424
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include<stdlib>
  2. #include <stdio.h>
  3.  
  4. int** init_2darray(int numOfRow, int numOfCol) {
  5.  
  6.         int i, j;
  7.         int** array = (int**) malloc (sizeof(int*)*numOfRow);
  8.         if (array==NULL)
  9.                 return NULL;
  10.         for (i=0;i<numOfRow;i++) {
  11.                array[i] = (int*) calloc (numOfCol,sizeof(int));
  12.                if (array[i]==NULL) {
  13.                        for (j=0;j<i;j++)
  14.                                free(array[j]);
  15.                        free(array);
  16.                        return NULL;            
  17.                }
  18.        }
  19.        return array;
  20.  
  21. }
  22.  
  23. void free_2darray(int** array, int numOfRow) {
  24.  
  25.        int i;
  26.        for (i=0;i<numOfRow;i++)
  27.                free(array[i]);
  28.        free(array);
  29.  
  30. }
  31.  
  32. void print_2darray(int** array, int numOfRow, int numOfCol) {
  33.  
  34.        int i, j;
  35.        for (i=0;i<numOfRow;i++) {
  36.                for (j=0;j<numOfCol;j++)
  37.                        printf("%10d",array[i][j]);
  38.                printf("\n");
  39.        }
  40.  
  41. }
  42.  
  43. int** add_to_2darray(int** array, int* numOfRow, int* numOfCol, int i, int j, int value)
  44. {
  45.    int m,n;
  46.       if(i>=*numOfRow)      
  47.         {
  48.        array=(int**)realloc(array,(i+1)*sizeof(int*));
  49.              
  50.         for(m=*numOfRow;m<i+1;m++)
  51.           array[m]=(int*)calloc(*numOfCol,sizeof(int));
  52.             *numOfRow=i+1
  53.        }
  54.        
  55.      if(j>=*numOfCol)      {
  56.          for(m=0;m<*numOfRow;m++)
  57.           {
  58.         array[m]=(int*)realloc(array[m],(j+1)*sizeof(int));
  59.         for(n=*numOfCol;n<=j;n++)
  60.         array[m][n]=0;   }
  61.           }
  62.        
  63.        array[i][j]=value;
  64.        
  65.        return array;
  66. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement