c - 即使我为指针结构分配内存,我的 strcpy 也无法工作

标签 c

我尝试为我的结构分配内存,但没有成功。这是我的程序中出错的部分(也是结构的声明)。

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/

相关文章:

c - Valgrind:C 程序中肯定丢失内存泄漏

C 或 '|' 运算符

c - 从内联字节重新组装 float

c - 为什么在 C 中使用指针?

我可以从 SIGSEGV 处理程序中终止另一个进程吗?

Python subprocess.communicate() 不捕获简单二进制文件的输出

c - 为什么我在使用 malloc 并使用 sizeof 打印后没有得到正确的大小?

c - Makefile 的正确标准是什么?

c - GSL 求解钟摆运动的 ODE

c - 在用 C 编写一个简单的程序时遇到问题,有什么建议吗?