gpt4 book ai didi

c - 为什么我可以将更长的字符串分配给 C 中的指针?

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

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

int main()
{
char *ptr = malloc(sizeof(char) * 1);
ptr = "Hello World";

puts(ptr);
getchar();
}

我不是 malloc() 专家,但由于我只分配了一个字节但将包含 11 个字节的值分配给 *ptr 指针,所以该代码不应该给出错误吗?
还是将 H 存储在我指定的位置,然后字符串的其余部分就放在它后面的位置?

最佳答案

您正在将指针“ptr”重新分配给另一个内存块,因此您不会看到任何错误。但是,您分配的内存块(大小为 1)“丢失”并导致内存泄漏。

关于c - 为什么我可以将更长的字符串分配给 C 中的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16072431/

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