【问题标题】:Getting segmentation fault strcpy [duplicate]获取分段错误strcpy [重复]
【发布时间】:2014-05-18 03:13:29
【问题描述】:
struct Object * newObj(char * nome, int idade, float altura) {
    struct Object *obj = (struct Object *) malloc(sizeof(struct Object));
    strcpy(obj->nome, nome); // This is the line
    obj->idade = idade;
    obj->altura = altura;
    return obj;
}

这是我的代码,我不知道为什么我在 strcpy 中遇到分段错误。
有什么想法吗?

提前致谢。

【问题讨论】:

  • 你需要为obj->nomeobj->nome = malloc(...)分配内存
  • 请删除所有你不知道确切在做什么的演员表,并解释为什么演员表必须正确工作。永远不要扼杀编译器,而是让它大声说出来:使用-Wall -Wextra,并适当地处理所有警告。
  • obj->nome是指针还是数组?
  • @pNre 那是错误!
  • @Deduplicator 感谢您的建议!

标签: c segmentation-fault strcpy


【解决方案1】:

在您的struct Object 类型中,nome 成员被声明为指针,您还需要为数组分配内存。不分配内存obj->nome 有一个不确定的值。

【讨论】:

  • 这是错误!非常感谢!
猜你喜欢
  • 2013-08-25
  • 2012-05-06
  • 2014-06-15
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 1970-01-01
  • 2011-11-22
  • 2020-10-05
相关资源
最近更新 更多