c - 结构指针数组的问题
问题描述
在定义了 student 类型(这是一个由两个字符数组和一个 int 组成的结构)之后,我创建了一个指向 student 的指针数组,我需要它来在一系列函数中修改其内容。
int main(void)
{
student* students[NUMBER_OF_STUDENTS];
strcpy(students[0]->name, "test");
strcpy(students[0]->surname, "test");
students[0]->grade = 18;
return EXIT_SUCCESS;
}
我的问题是这段简单的代码在运行后返回 -1 作为退出状态。这是为什么?
解决方案
指针students[0]
未初始化。取消引用它会导致未定义的行为。
在尝试访问它之前,使用有效对象的地址对其进行初始化。
student test;
students[0] = &test;
strcpy(students[0]->name, "test");
strcpy(students[0]->surname, "test");
students[0]->grade = 18;
推荐阅读
- python - 如何在这个 beautifulsoup Python 脚本上迭代 CSV 输出中的列?
- github - GitHub Actions ***NO_CI*** 替代品
- python - python读取文件,根据条件抓取行
- angular - 去抖动前后在输入文本上触发事件
- spring - 弹簧执行器:如何使用自定义路径检查健康状况
- java - Spring Boot - 当程序失去与数据库的连接时如何执行方法?
- swift - 推送视图控制器时如何修复半透明标签栏中的黑色背景
- android - 如何每小时更新一次 Firebase 实时数据库?
- c# - 如何创建具有泛型类型的接口集合
- driver - 由于 inf 的版本部分中的驱动程序版本不正确,无法加载 Inf 文件 XXX.inf