我必须以动态方式分配内存,我看到的所有其他列表,都以这种方式编码该结构..不知道出了什么问题。结构声明如下:
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
答案 0 :(得分:0)
问题在于breakOut
是未初始化的指向novo->prox
的指针,因此它可能包含垃圾值。在访问struct CAD
之前,您应该将其设置为指向有效的内存地址。