tmp = (double *) callocordie (nb, sizeof (double));
memcpy (tmp, tab->data, ((tab->size < nb) ? tab->size : nb) * sizeof (double));
}
- free (tab->data);
+ if (tab->data){
+ free (tab->data);
+ }
tab->data = tmp;
tab->size = nb;
return tab;
if ((!tab) || (((id < 1) || (id > tab->size)) && (id != -1))) {
VERBOSE (WARNING, fprintf (stdout, "error out of bounds (%d/%d)\n", id, (tab) ? tab->size : 0));
} else {
- ret = tab->data[id - 1];
/* special case for inserting an element at the end */
id = (id == -1) ? tab->size : id;
+ /* read data */
+ ret = tab->data[id - 1];
+
/* create larger tab */
double *tmp = (double *) callocordie (tab->size - 1, sizeof (double));
memcpy (tmp, tab->data, (id - 1) * sizeof (double));