当我调用 realloc() 时,我的问题就在这条线上,但适用于第一个“Elemento”#include #include using namespace std;
typedef struct{
string palabra;
string* significados;
size_t tam;
} Elemento;
typedef struct{
Elemento* elementos;
size_t tam;
} Diccionario;
Diccionario crearDic(){
Diccionario dic;
dic.tam = 0;
return dic;
}
void agregarPalabraDic(Diccionario &dic, string pal, string sig){
dic.elementos = (Elemento*)realloc(dic.elementos,(dic.tam+1)*sizeof(Elemento));
dic.tam++;
dic.elementos[dic.tam-1].palabra = pal;
dic.elementos[dic.tam-1].significados = (string*)malloc(sizeof(string));
dic.elementos[dic.tam-1].tam = 1;
dic.elementos[dic.tam-1].significados[0] = sig;
}
这是 main() :
int main(){
Diccionario dic = crearDic();
agregarPalabraDic(dic,"apple","red"); //no problem here
agregarPalabraDic(dic,"banana","yellow"); //thats the problem
...
}
我有好几天都在尝试,但什么都没有,我需要一些帮助.. ty