c - 为什么在传递给 malloc 时取消引用 Wild 或 null 指针不会导致分段错误?
问题描述
这些代码会导致分段错误:
int *i;
printf("%d\n", *i);
int *i = NULL;
printf("%d\n", *i);
而这些没有:
int *i;
i = malloc(sizeof *i);
int *i = NULL;
i = malloc(sizeof *i);
在所有示例中,野指针和空指针被取消引用并作为参数传递给应该导致分段错误的函数。为什么使用 malloc 的示例没有按预期运行并产生分段错误?
解决方案
推荐阅读
- sql - sql - 基于另一个表(日期范围)上的列的条件查询
- r - 带有保存按钮的 R 闪亮模块
- python - 熊猫时间序列重采样+线性调整值
- swift - Swift NSManagedObject 子类在 10.13 及以下版本中错误地添加了模块名称
- python - 比较两个不同大小的列表并创建一个新列表
- r - 使用重复值作为 Id 重塑数据框
- flutter - 颤振中的共享偏好 - 颤振清除后的错误
- mysql - 客户税务准备的数据库结构
- python-3.x - 获取Python中时间序列先前值的泊松期望
- android - 为 Lollipop API 21 设备获取 app:drawableEndCompat 而不是 android:drawableEnd 警告