我有这样的结构:
struct _Total {
Socio *socio[0];
Libro *libro[0];
int numsocios;
int numlibros;
};
我在大学里练习,我需要重新学习" socio"和" libro"指针每次添加数据。例如,如果a只有一个" socio"数组需要大小为1,如果我添加另一个" socio"我需要将它重新分配到大小2,然后将指针添加到新结构(计数器是" numsocios")。同样适用于" libro"。
我尝试了这个函数(在total.c文件中),但显然我遇到了类型错误:
STATUS total_ajustarsocio(Socio **socio, int tam) {
Socio *temp = NULL;
if (!socio) {
return ERROR;
}
temp = (Socio *) realloc (*socio, tam * sizeof(Socio));
if (!temp) {
printf("Error reallocating Socio");
return ERROR;
}
*socio = temp;
return OK;
}
那么,我该如何解决mi问题呢?
P.S。这是Socio结构(在socio.c中 - 它也具有malloc的功能,并且在此文件中也是免费的)。
struct _Socio {
char nombre[MAXCAR];
char apellido[MAXCAR];
int dni;
char direccion[MAXCAR];
int tlf;
int numprestamos;
};
谢谢!
答案 0 :(得分:3)
您的struct _Total
错了。它应该是:
struct _Total {
Socio *socio;
Libro *libro;
int numsocios;
int numlibros;
};
您的total_ajustarsocio
函数可能会被称为:
total.numsocios++;
err = total_ajustarsocio(&total.socio, total.numsocios);