【发布时间】:2021-12-21 10:28:28
【问题描述】:
#include <stdio.h>
int *fun()
{
int j = 18;
return &j;
}
int main()
{
int *p = fun();
printf("%d\n", *p);
}
我对编译时错误和运行时错误感到困惑。以上代码会导致编译时错误还是运行时错误。任何有清楚的人请解释各种错误之间的主要区别,如编译时错误、语法错误、语义错误、逻辑错误、运行时错误等。
【问题讨论】:
-
编译它。它编译时没有显示任何错误或警告吗?如果不是,则存在编译时错误。
-
错误信息是什么?由于 UB,我只看到潜在的运行时错误(
j超出范围)。
标签: c error-handling