提问人:TrippLamb 提问时间:9/29/2023 最后编辑:TrippLamb 更新时间:9/29/2023 访问量:67
为什么访问长度为 0 的索引数组不会引发越界访问冲突错误?
Why does accessing an index of 0 length array not throw an out of bounds access violation error?
问:
使用 intel fortran oneapi 版本 2023.0.0.25839。我已经使用 /check:all 打开了所有运行时检查。
如果以下抛出“forrtl: severe (408): fort: (2): subscript #1 of the array A has a value 2 which is greater the upper bound of 1” 错误:
Program Main
implicit none
real, dimension(:), allocatable :: a
allocate(a(1))
print *, a(2)
End Program Main
那么为什么这段代码不也会抛出错误:
Program Main
implicit none
real, dimension(:), allocatable :: a
allocate(a(0))
print *, a(2)
End Program Main
它显然给出了未定义的行为,但它不会抛出错误。
编辑:注释中要求的完整命令行参数列表
/nologo /debug:full /Od /Warn:interfaces /module:"Debug\\" /object:"Debug\\" /Fd"Debug\vc160.db" /traceback /check:all /libs:dll /threads /dbglibs /c
答: 暂无答案
评论
ifx -check all