我必须动态分配内存,我看到的所有其他列表,该结构都是这样编码的..不知道出了什么问题。结构声明如下:
struct CAD
{
char hash_atual[TAM_HASH];
char hash_anterior[TAM_HASH];
char timestamp[TAM_TEMP];
ALUNOS registros[REG_MAX];
struct CAD *prox;
};
typedef struct CAD CADEIA;
...
CADEIA** criar_cadeia(CADEIA **c)
{
CADEIA *novo;
char hash[TAM_HASH], caracteres[62];
c = (CADEIA**)malloc(sizeof(CADEIA*));
novo = (CADEIA*)malloc(sizeof(CADEIA));
...
strcpy(novo->hash_atual, hash);
strcpy(novo->prox->hash_anterior, novo->hash_atual); --->problem here
最佳答案
问题是novo->prox
是未初始化的指向struct CAD
的指针,因此它可能包含垃圾值。访问novo->prox
之前,应将其设置为指向有效的内存地址。