Advertisement
DominikPasiut

Untitled

Jan 15th, 2019
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.09 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. #include <stdlib.h>
  5.  
  6. #define SIZE 3
  7.  
  8.  
  9. int rozmiar_macierzy();
  10. void* alokacja_pamieci(int ilosc_elementow, int rozmiar_elementu);
  11. void dodawanie_macierzy();
  12. void wypisywanie_macierzy(int* a, int dimX, int dimY);
  13.  
  14. int main()
  15. {
  16.     dodawanie_macierzy();
  17.  
  18.     return 0;
  19. }
  20.  
  21. int rozmiar_macierzy()
  22. {
  23.     int rozmiar = 0;
  24.  
  25.     do{
  26.         printf("Podaj rozmiar macierzy: ");
  27.         scanf("%d", &rozmiar);
  28.         system("CLS");
  29.     }while(rozmiar <= 1);
  30.  
  31.     return rozmiar;
  32. }
  33.  
  34. void* alokacja_pamieci(int ilosc_elementow, int rozmiar_elementu)
  35. {
  36.     return malloc(ilosc_elementow * rozmiar_elementu);
  37. }
  38.  
  39. // i nie zwracasz void pointera, czyli wskaźnka bez typu, (wymaga returna w funkcji)
  40. // tylko po prostu zwracasz void tzn. NIC (bo nie ma returna)
  41. void wypisywanie_macierzy(int* a, int dimX, int dimY)
  42. {
  43.     for (int i = 0; i < dimY ; i++)
  44.     {
  45.         for (int k = 0; k < dimX; k++)
  46.         {
  47.             printf("%d ", *(a + i*dimY + k));
  48.         }
  49.         printf("\n");
  50.     }
  51. }
  52.  
  53. void dodawanie_macierzy()
  54. {
  55.     int* pMacierze[SIZE] = {NULL};
  56.  
  57.     int m = 5;
  58.     //m = rozmiar_macierzy();
  59.  
  60.     for (int i = 0; i < SIZE; i++)
  61.     {
  62.         //printf("%d\n", sizeof (*pMacierze)  );
  63.         pMacierze[i] = calloc(m * m, sizeof (*pMacierze)  ); //TODO ptr 4byte         //Przydzielanie pamięci dla kolejnych tablic
  64.         if (pMacierze[i] == NULL)
  65.             exit(-1);
  66.     }
  67.  
  68.     for (int i = 0; i < m * m; i++)     //Żeby nie wprowadzać za każdym razem wartości, każdy element w tablicy przyjmuje wartośc rozmiaru
  69.     {                               //Elementy drugiej tablicy są powiększone o 1 wzgędem elementów poprzedniej tablicy
  70.         *(pMacierze[0] + i) = m;
  71.         *(pMacierze[1] + i) = m + 1;
  72.         *(pMacierze[2] + i) = *(pMacierze[0] + i) + *(pMacierze[1] + i); //Dodawanie macierzy
  73.     }
  74.  
  75.     for (int i = 0; i < SIZE; i++)
  76.     {
  77.         wypisywanie_macierzy(pMacierze[i], m, m);
  78.         printf("\n");
  79.     }
  80.  
  81.     for (int i = 0; i < SIZE; i++)
  82.         free(pMacierze[i]);
  83.  
  84. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement