[ create a new paste ] login | about

Link: http://codepad.org/4210BUHk    [ raw code | fork ]

C, pasted on Dec 12:
#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;
}


Create a new paste based on this one


Comments: