gpt4 book ai didi

C 结构错误 : Stack Smashing Detected, 中止(核心转储)

转载 作者:行者123 更新时间:2023-11-30 17:05:44 29 4
gpt4 key购买 nike

嗨,我正在使用“struct”编写一个简单的 C 程序。我正在尝试添加字符串(这似乎总是很麻烦),我终于可以编译,但是当我运行它时,我收到错误。文件名是“struct”,这是错误:

*** stack smashing detected *** ./struct terminated
Aborted (core dumped)

这是代码:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>


struct members {

int id;
int age;
char name[];
};
int main(void)
{
struct members person;
person.id = 1223;
person.age = 37;
strcpy(person.name, "Matthew");

printf("ID: %d\n Age: %d\n Name: %s\n", person.id, person.age, person.name);

return 0;
}

我不知道为什么它编译得很好然后崩溃了。我猜这是与字符串相关的代码的内存问题。有趣的是,它实际上可以工作并将信息打印到控制台,然后崩溃。任何帮助表示赞赏。谢谢。

最佳答案

试试这个。您没有为名称分配内存。

struct members {

int id;
int age;
char * name;
};
...
person.name=strdup("Matthew");

关于C 结构错误 : Stack Smashing Detected, 中止(核心转储),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35119953/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com