sách gpt4 ai đã đi

Tại sao tôi không nhận được ngoại lệ OutOfBounds (như trong Java) hoặc bất kỳ lỗi nào khác trong C khi tôi vi phạm giới hạn kích thước mảng?

In lại 作者:行者123 更新时间:2023-11-30 18:40:50 26 4
mua khóa gpt4 Nike

我对下面的 C 代码感到好奇

int main(){

int arr[10];
*(arr+120) = 5;
int *px = arr;
int i = 0;
for(i = 0; *px != 5; px++){
i++;
}

printf("%d", i);
}

此代码产生的输出为 120。据说我们的数组可容纳 10 个项目。如果可能存在某种错误,如何为索引 120 分配一些值,运行循环并获取我的值。可能我没有得到一些 C 语言的细节。在java中我会得到OutOfBounds异常......请帮忙澄清一下。谢谢!

1 Câu trả lời

C 不检查数组边界,访问数组外元素的代码是未定义的行为,这意味着任何事情都可能发生 - 包括您得到的结果。

关于c - 当我违反数组大小限制时,为什么我没有收到 OutOfBounds 异常(如 Java 异常)或 C 中的任何其他错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24741041/

26 4 0
Bài viết được đề xuất: c - 不明白C中的指针
Bài viết được đề xuất: javascript - 在子标签之间添加树节点
Bài viết được đề xuất: c# - 嵌套 GridView - 如何触发子 GridView 按钮单击事件
Bài viết được đề xuất: javascript - 单击时在 td 中展开一个 div
行者123
Hồ sơ cá nhân

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá Didi Taxi miễn phí
Mã giảm giá Didi Taxi
Giấy chứng nhận ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com