c - 即使我为指针结构分配内存,我的 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);
解决方案
尝试将 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
为字符串的最大大小。
推荐阅读
- python - 从末尾提取没有数字的文件名
- excel - 如何使用 Apex 将数据从 Excel 加载到 Oracle 数据库
- excel - 在 Excel 中将 ISO 8601 格式转换为小时
- selenium-webdriver - 无法在 WebdriverSampler 中使用 groovy Webdriver 脚本
- excel - 基于先前选择的 Excel 动态下拉列表
- typescript - TypeScript:hashchange 上的事件类型
- java - 如果有多种可能性,我应该分配什么类型?
- elixir - 我如何概括这个 Ecto/Elixir 功能?
- javascript - Amazon S3 奇怪的 CORS 行为:请求的资源上不存在“Access-Control-Allow-Origin”标头
- angular7 - Angular 7 Reactive Form 在按 Enter 键时返回先前输入的值