Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <conio.h>
- #include <string.h>
- #include <stdlib.h>
- #define SIZE 3
- int rozmiar_macierzy();
- void* alokacja_pamieci(int ilosc_elementow, int rozmiar_elementu);
- void dodawanie_macierzy();
- void wypisywanie_macierzy(int* a, int dimX, int dimY);
- int main()
- {
- dodawanie_macierzy();
- return 0;
- }
- int rozmiar_macierzy()
- {
- int rozmiar = 0;
- do{
- printf("Podaj rozmiar macierzy: ");
- scanf("%d", &rozmiar);
- system("CLS");
- }while(rozmiar <= 1);
- return rozmiar;
- }
- void* alokacja_pamieci(int ilosc_elementow, int rozmiar_elementu)
- {
- return malloc(ilosc_elementow * rozmiar_elementu);
- }
- // i nie zwracasz void pointera, czyli wskaźnka bez typu, (wymaga returna w funkcji)
- // tylko po prostu zwracasz void tzn. NIC (bo nie ma returna)
- void wypisywanie_macierzy(int* a, int dimX, int dimY)
- {
- for (int i = 0; i < dimY ; i++)
- {
- for (int k = 0; k < dimX; k++)
- {
- printf("%d ", *(a + i*dimY + k));
- }
- printf("\n");
- }
- }
- void dodawanie_macierzy()
- {
- int* pMacierze[SIZE] = {NULL};
- int m = 5;
- //m = rozmiar_macierzy();
- for (int i = 0; i < SIZE; i++)
- {
- //printf("%d\n", sizeof (*pMacierze) );
- pMacierze[i] = calloc(m * m, sizeof (*pMacierze) ); //TODO ptr 4byte //Przydzielanie pamięci dla kolejnych tablic
- if (pMacierze[i] == NULL)
- exit(-1);
- }
- 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
- { //Elementy drugiej tablicy są powiększone o 1 wzgędem elementów poprzedniej tablicy
- *(pMacierze[0] + i) = m;
- *(pMacierze[1] + i) = m + 1;
- *(pMacierze[2] + i) = *(pMacierze[0] + i) + *(pMacierze[1] + i); //Dodawanie macierzy
- }
- for (int i = 0; i < SIZE; i++)
- {
- wypisywanie_macierzy(pMacierze[i], m, m);
- printf("\n");
- }
- for (int i = 0; i < SIZE; i++)
- free(pMacierze[i]);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement