gpt4 book ai didi

c - 为什么编译时没有报错?

转载 作者:行者123 更新时间:2023-11-30 21:48:30 26 4
gpt4 key购买 nike

#include <stdio.h>

int main()
{
int i = 0;
int *a;
do
{
scanf("%d",&a[i]);
i++;
}
while (a[i-1]!=-1);
}

此代码读取数字直到 -1遇到。指针a未初始化,但代码仍然可以编译并运行,没有任何错误。为什么?这是一种在不声明数组大小的情况下初始化数组的方法吗?

最佳答案

默认情况下,GCC 不会警告未初始化的值。

您需要-Wuninitialized选项:

gcc -Wuninitialized your_file.c

您可能应该使用 -Wall 选项来启用此警告以及许多其他有用的警告。

有关警告选项的更多信息 here

关于c - 为什么编译时没有报错?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48841016/

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