gpt4 book ai didi

c - 为什么运行它不会发出段错误?

转载 作者:太空狗 更新时间:2023-10-29 15:10:33 26 4
gpt4 key购买 nike

<分区>

Possible Duplicate:
Invalid read/write sometimes creates segmentation fault and sometimes does not

我有以下代码:

#include <stdlib.h>
#include <stdio.h>

int main() {
int *ptr = NULL;
ptr = malloc(sizeof(char));
if (ptr) {
*ptr = 10;
printf("sizeof(int): %zu\nsizeof(char): %zu\n", sizeof(int), sizeof(char));
printf("deref of ptr: %d\n", *ptr);
free(ptr);
return EXIT_SUCCESS;
}
else
return EXIT_FAILURE;
}

当我编译并运行它时,我得到以下输出:

$ gcc test.c
$ ./a.out
sizeof(int): 4
sizeof(char): 1
deref of ptr: 10

sizeof(char) 小于 sizeof(int)。我的 malloc 调用只为 char 留出了足够的空间。然而,我的程序能够将整数值分配给 ptr 而不会崩溃。为什么会这样?

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