I have code to create a new structure and allocate some space for an array of structures. Initially, I allocate space for 1 structure in the array:
static int datasetCount = 0;
int datasetgroup_new(DatasetGroup *dg char *id){
dg->id = id;
dg->datasets = (Dataset *) malloc(sizeof(Dataset));
return 0;
}
Then I have a function to add another structure ('dataset') to the structure containing the array. At the end of the function, I redistribute the array to provide another space:
void datasetgroup_add(DatasetGroup *dg, string filePath){
Dataset ds;
dataset_new(&ds, filePath);
dg->datasets[datasetCount] = ds;
datasetCount++;
dg->datasets = (Dataset *)realloc(dg->datasets, sizeof(Dataset) * (datasetCount + 1));
}
I keep reading things that hint that in modern C you don't need to do such things. Maybe I'm wrong ... so is this a more modern / proper way to do this?
Edit:
Sorry to be clear that I am not using C ++ types, I created a typedef for string:
typedef char* string;
jramm source
share