gpt4 book ai didi

c - malloc 分配的内存是否超出了我的要求?

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

以下代码打印 1 到 300 之间的所有数字。为什么它不抛出段错误?

编译版本:gcc 版本 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

此外,这现在与 malloc(0) actually works? 不同

#include <stdlib.h>
#include <stdio.h>
int main(int argc, char *argv[])
{
int *pi = (int *)malloc(1);
int i = 0;
for(i = 0;i < 300;i++) {
*(pi + i) = i + 1;
}
for (i=0;i < 300;i++) {
printf("%d\n", *(pi + i));
}
return 0;
}

最佳答案

malloc(0) 是实现定义的,返回空指针或不得取消引用的指针。

取消引用 malloc(0) 的结果会调用未定义的行为。

关于c - malloc 分配的内存是否超出了我的要求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23844712/

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