首页 > 解决方案 > 即使我为指针结构分配内存,我的 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;
strcpy(agenda[l].inicio->nome,nome);

标签: c

解决方案


尝试将 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为字符串的最大大小。


推荐阅读