gpt4 book ai didi

c++ - 字符数组问题C++

转载 作者:塔克拉玛干 更新时间:2023-11-03 08:05:53 25 4
gpt4 key购买 nike

下面两个片段有什么区别吗?一个是字符数组,而另一个是字符数组指针,但它们的行为确实相同,不是吗?

示例 1:

char * transport_layer_header;
// Memory allocation for char * - allocate memory for a 2 character string
char * transport_layer_header = (char *)malloc(2 * sizeof(char));
sprintf(transport_layer_header,"%d%d",1,2);

示例 2:

char transport_layer_header[2];
sprintf(transport_layer_header,"%d%d",1,2);

最佳答案

是的,有区别。在第一个示例中,您在堆上动态分配了一个二元素 char 数组。在第二个示例中,堆栈上有一个本地双元素 char 数组。

在第一个示例中,由于您没有释放 malloc 返回的指针,因此您也有内存泄漏。

它们通常可以以相同的方式使用,例如使用您演示的 sprintf,但它们在本质上是根本不同的。

关于c++ - 字符数组问题C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1834769/

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