我尝试为我的结构分配内存,但没有成功。这是我的程序中出错的部分(也是结构的声明)。
struct ptr {
int tel;
char nome;
struct ptr *prox;
};
struct reg{
char letra;
struct ptr *inicio;
};
struct reg agenda[26];
agenda[l].inicio = (struct ptr*)malloc(sizeof(struct ptr));
agenda[l].inicio->prox = (struct ptr*)NULL;
strcpy(agenda[l].inicio->nome,nome);
最佳答案
尝试将 nome char 更改为 char 指针。另外,在 strcpy 之前,您必须为指针分配内存。
struct ptr {
int tel;
char *nome;
struct ptr *prox;
};
struct reg{
char letra;
struct ptr *inicio;
};
struct reg agenda[26];
agenda[l].inicio = (struct ptr*)malloc(sizeof(struct ptr));
agenda[l].inicio->prox = (struct ptr*)NULL;
agenda[l].inicio->nome = (char*)malloc(MAX_NOME_LENGTH);
strcpy(agenda[l].inicio->nome,nome);
当然将MAX_NOME_LENGTH
更改为字符串的最大大小。
关于c - 即使我为指针结构分配内存,我的 strcpy 也无法工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58674177/