内存分配与数组大小定义

杰克斯

例如,在C语言中,无论何时我想处理字符串(C语言都不支持),我都可以

 char* String = (char*) malloc(25);

或者

 char String[25];

我想知道这两种定义数组长度的方法之间的主要区别是C(除此之外,第一个是指针,第二个不是指针)。

我也想知道哪个更安全。

  1. char* String = (char*) malloc(25);
  2. char String[25];

两个数组对象之间的主要区别是生存期。对象的生存期的第一个开始于malloc返回,并在free被调用时结束第二个元素的生存期取决于声明它的范围。在块作用域中,当输入块直到为止都将创建对象}在文件范围内,生存期从程序开始,并在程序结束时结束。

另一个区别是String在第一种情况下是指针,在第二种情况下是数组名。例如,sizeof String在第一种情况下,产生指针对象的大小,但在第二种情况下,产生数组对象的大小。

最后一点,请不要转换的返回值malloc

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

结构内固定大小数组的内存分配

来自分类Dev

对象数组的内存分配

来自分类Dev

对象数组的内存分配

来自分类Dev

相邻数组的内存分配

来自分类Dev

指针数组 - 内存分配

来自分类Dev

动态分配内存以更改以未知大小开始的数组大小C ++

来自分类Dev

调整大小分配的数组

来自分类Dev

动态数组大小分配

来自分类Dev

数组大小分配错误

来自分类Dev

使用动态内存分配设置char数组的确切大小

来自分类Dev

什么样的内存分配给大小为零的数组对象?

来自分类Dev

VS 2012无法为10,000,000个大小的char数组分配内存

来自分类Dev

如何在C中为未知大小的结构数组分配内存

来自分类Dev

了解char数组内存分配

来自分类Dev

内存分配和char数组

来自分类Dev

大数组如何分配内存?

来自分类Dev

使用数组分配内存

来自分类Dev

大数组如何分配内存?

来自分类Dev

定义精确大小的内存结构

来自分类Dev

定义精确大小的内存结构

来自分类Dev

如何分配与页面大小对齐的内存?

来自分类Dev

sizeof是否返回malloc内存分配的大小?

来自分类Dev

Postgres 无效内存分配请求大小 1073741824

来自分类Dev

用户定义的数组大小

来自分类Dev

Malloc中分配内存时分配大小的意义

来自分类Dev

PHP中的简单数组推送超出了允许的内存。(允许使用的内存大小为33554432字节(尝试分配33554440字节))

来自分类Dev

Java中的多维数组无效内存分配

来自分类Dev

如何在int数组中分配内存

来自分类Dev

数组数据类型的内存分配