gpt4 book ai didi

c - 使用 malloc 分配内存?

转载 作者:太空宇宙 更新时间:2023-11-04 02:10:08 25 4
gpt4 key购买 nike

下面是代码片段:

int main(void) {

char sizing[] = "manshcanshcnams cndhan sndhcna snshans";
char *xyz = malloc(sizeof(char));
printf("%ld\n",sizeof(xyz));
xyz = sizing; // IT SHOULD FAIL HERE
printf("Fail %s\n",xyz );
return 0;

如您所见,我正在尝试为 xyz 分配比它所能容纳的更多的内存。但输出不会失败。这是未定义的行为吗?

最佳答案

您不能使用 = 复制字符串. xyz = sizing只是修改变量 xyz使其指向数组 sizing ,而不是指向您分配的内存。

因此,您的内存已泄漏,但没有未定义的行为(除了您忘记包含 <stdio.h><stdlib.h> )。

关于c - 使用 malloc 分配内存?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15284471/

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