----------------------------------------------------------------------------------------------------- ---------------------------------------MY_Structs.h--------------------------------------------------- #pragma once struct MY_CAR { int year; //rok produkcji char nazwa[64]; //nazwa samochodu }; MY_CAR * fun_create_array(int dim); void fun_fill_array(MY_CAR *tab); MY_CAR * fun_add(int num, MY_CAR *t1, MY_CAR *t2); void fun_print_tab(MY_CAR *t, const char *title); void fun_free(MY_CAR **t); --------------------------------------------------------------------------------------------------- ---------------------------------------------------.cpp--------------------------------------------- // NaukaNaFialko111Kol.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include #include #include #include"MY_Structs.h" #pragma warning (disable:4996) int main() { //printf("char ma %d\n", sizeof(char)); //printf("int ma %d\n", sizeof(int)); //printf("double ma %d\n", sizeof(double)); int dim_1, dim_2; printf("podaj rozmiar pierwszej tablicy aut\n"); scanf("%d", &dim_1); printf("podaj rozmiar drugiej tablicy aut\n"); scanf("%d", &dim_2); MY_CAR* tab_1 = fun_create_array(dim_1); MY_CAR* tab_2 = fun_create_array(dim_2); fun_fill_array(tab_1); fun_fill_array(tab_2); fun_print_tab(tab_1, "numer 1"); fun_print_tab(tab_2, "numer 2"); fun_add(2, tab_1, tab_2); fun_print_tab(tab_1, "numer 1"); return 0; } MY_CAR * fun_create_array(int dim) { MY_CAR* Tmp; Tmp = (MY_CAR*)malloc(dim * sizeof(MY_CAR)); if (!Tmp) { exit(1); } for (size_t i = 0; i < dim; i++) { memset(Tmp[i].nazwa, 0, 64); } return Tmp; } void fun_fill_array(MY_CAR *tab) { char symb = 'a'; int roz = _msize(tab) / sizeof(MY_CAR); for (int i = 0; i < roz; i++) { tab[i].nazwa[0] = symb; tab[i].year = (1+i) * 100; symb = symb + 1; } } MY_CAR * fun_add(int num, MY_CAR *t1, MY_CAR *t2) { int roz_1 = _msize(t1) / sizeof(MY_CAR); int roz_2 = _msize(t2) / sizeof(MY_CAR); if (1) { t1 = (MY_CAR*)realloc(t1, ((roz_1 + roz_2) * sizeof(MY_CAR))); } memmove(t1 + roz_2 + num, t1 + num, (roz_1 - num) * sizeof(MY_CAR)); memcpy(t1 + num, t2, roz_2 * sizeof(MY_CAR)); /*memmove(t1+roz_2, t1 , roz_1 * sizeof(MY_CAR)); memcpy(t1, t2, roz_2 * sizeof(MY_CAR));*/ return t1; } void fun_print_tab(MY_CAR *t, const char *title) { int roz = _msize(t) / sizeof(MY_CAR); for (int i = 0; i < roz; i++) { printf("auto numer %d\n", i); printf("rok auta %d\n", t[i].year); printf("nazwa auta %s\n", t[i].nazwa); } } void fun_free(MY_CAR **t) { }