gpt4 book ai didi

c - Malloc 与自动创建数组

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

我正在尝试创建一个单词数组。像这样创建数组有什么区别:

char* myWords[10];

char* myWords = malloc(10*sizeof(char *))

我假设由于第一个是自动发生的,所以内存在函数执行结束时被回收。对吗?

最佳答案

这些是非常不同的类型。

第一个以通常的(自动)方式创建一个指针数组。这 10 个指针在函数结束之前一直有效。它们不会单独指向任何有效的内容,但每个都可以指向一个单独的字符串,该字符串可以从数组的每个元素访问。

第二个将一 block 内存分配给指向字符的单个指针。因此,您会期望它指向一个字符串(通常最多 40 或 80 个字节)。内存在您释放它之前一直有效,但指针是自动的,就像第一个一样。 (请注意,字符指针数组会衰减为 char ** 而不是 char *。)

关于c - Malloc 与自动创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29398621/

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