#include <stdio.h>
#include <stdlib.h>
#include <time.h>
typedef struct {
double Re, Im;
} CMPLX;
typedef struct {
int num;
CMPLX *arr;
} CMPLX_SET;
void create_set(CMPLX_SET *set, int n)
{
set->num = n;
set->arr = malloc(sizeof(CMPLX)*n);
if(set->arr == NULL)
return;
for(int i=0; i<n; ++i){
set->arr[i].Re = rand() / (double)RAND_MAX;
set->arr[i].Im = rand() / (double)RAND_MAX;
}
}
void print_set(CMPLX_SET set, int n)
{
for(int i=0; i<n; ++i){
printf("%lf %lfi\n", set.arr[i].Re, set.arr[i].Im);
}
}
void change_set_size(CMPLX_SET *p, int num)
{
int current_int_size = sizeof(p->arr) / sizeof(CMPLX); // <- TUTAJ TUTAJ TUTAJ TUTAJ TUTAJ TUTAJ
printf("TEST | %d | TEST\n", current_int_size);
p->arr = realloc(p->arr, sizeof p->arr + num*sizeof(CMPLX));
if(!p)
return;
for(int i = current_int_size-1; i<5+current_int_size; ++i){
p->arr[i].Re = rand() / (double)RAND_MAX;
p->arr[i].Im = rand() / (double)RAND_MAX;
}
}
int main()
{
srand((int)time(NULL));
CMPLX_SET set;
int n; scanf("%d", &n);
create_set(&set, n);
print_set(set, n);
int num;
puts("How many items do you want to add to the set?:");
scanf("%d", &num);
change_set_size(&set, n+num);
//print_set(set, n+num);
free(set.arr);
return 0;
}