MJay napisał(a)
Chodziło mi o imitację pojemników w C++.
Zastanów się jeszcze nad definicją funkcji które mogą Ci się przydać np usuwanie wartości, przez co mniejsza się size
#include <stdio.h>
typedef struct
{
int capacity;
int size;
float* tablica;
} CTab;
void init_tab(CTab* T, int cap)
{
T->capacity = cap;
T->size = 0;
T->tablica = (float*)malloc(cap * sizeof(float));
}
void reinit_tab(CTab* T, int cap)
{
int i;
T->capacity = cap;
float* temp;
temp = (float*)malloc(T->capacity * sizeof(float));
for(i = 0; i < T->size; ++i)
temp[i] = T->tablica[i];
free(T->tablica);
T->tablica = temp;
}
void add_value(CTab* T, float val)
{
if(T->capacity <= T->size)
reinit_tab(T, T->capacity + 5);
T->tablica[T->size] = val;
T->size += 1;
}
void delete_tab(CTab* T)
{
free(T->tablica);
}
int main()
{
int i;
CTab nowy;
init_tab(&nowy, 3);
add_value(&nowy, 3.0f);
add_value(&nowy, 5.4f);
add_value(&nowy, 5.3f);
add_value(&nowy, 5.2f);
add_value(&nowy, 5.1f);
add_value(&nowy, 5.0f);
for(i = 0; i < nowy.size; ++i)
printf("%d. %f\n", i + 1, nowy.tablica[i]);
printf("poj = %d\n", nowy.capacity);
printf("roz = %d\n", nowy.size);
delete_tab(&nowy);
getchar();
return 0;
}
trzymaj się jednej konwencji nazewnictwa. Albo nazywasz wszystko po nasymu albo po angielsku bo to zmieszane obleśnie wygląda.