`

Array vs. Malloc: A C语言问题

阅读更多
code:

int foo[256];



int *bar;
bar = (int *)malloc(256*sizeof(int));

foo 和 bar 功能上是相同的定义一个array。 foo被当成一个指针,bar作为一个数组. C甚至不检查数组的界限。

两者不同之处是foo分配的内存会自动回收,当它所在的函数运行结束时,而bar的内存空间只有在使用free函数时才被释放。

还有什么不同的吗? 欢迎大家来补充
分享到:
评论

相关推荐

    C语言课件:7_第七章 数组(The Array).ppt

    第七章 数组(The Array)是C语言学习中的一个重要章节,主要涵盖了如何定义、初始化和引用一维和二维数组,以及如何处理字符串和字符数组。数组是C语言中基础且重要的数据结构,它允许我们存储一组相同类型的数据。 ...

    你必须知道的495个C语言问题(PDF)

    难道在C语言中一个结构不能包含指向自己的指针吗? . . . . 3 1.7 怎样建立和理解非常复杂的声明?例如定义一个包含N 个指向返 回指向字符的指针的函数的指针的数组? . . . . . . . . . . . . . . 3 1.8 函数只定义...

    《C语言》辅助自测.pdf

    10. 内存管理:C语言提供了动态内存分配函数,如malloc、calloc、realloc和free,用于在堆上动态分配和释放内存。 在上述部分给出的题目中,包括了对这些知识点的考察。例如,C语言的switch语句和case标号的用法,...

    c.zip_C语言

    C语言是一种强大的、底层的编程语言,其精髓之一就在于对内存操作的直接控制,而这一特性在很大程度上是通过指针来实现的。本压缩包文件"**c.zip**"显然是一个专注于C语言指针使用的资源集合,它将帮助我们深入理解...

    nasa-c-style.rar_NASA C语言编程规范_style_可靠性

    NASA的C语言编程规范是为确保其软件的高度可靠性和安全性而制定的一套详细准则,尤其在航空航天这样的高风险领域,代码质量直接关系到任务的成功与安全。这份规范旨在提高代码的可读性、可维护性,并减少潜在的错误...

    DynamicArray:用C语言实现动态数组

    在C语言中,我们通常使用`malloc()`,`calloc()`,`realloc()`和`free()`函数来管理动态内存。`malloc()`用于分配指定大小的内存,`calloc()`用于分配指定数量元素的内存并初始化为零,`realloc()`用于重新分配已...

    【PDF】[你必须知道的495个C语言问题]人民邮电出版社.扫描版

    根据提供的文件信息,我们可以推断出这是一本关于C语言问题解答的书籍——《你必须知道的495个C语言问题》,由人民邮电出版社出版,并提供了PDF格式的扫描版。下面将针对该书籍可能涉及的重要C语言知识点进行详细...

    C/C++/C#笔试题目

    4. 内存管理:动态内存分配(malloc、calloc、realloc、free)和栈与堆的区别。 5. 指针:指针的定义、指针运算、指针作为函数参数、指针数组和数组指针。 6. 结构体与联合:自定义数据类型。 7. 预处理:宏定义、...

    c语言库函数大全.rar(Word版本)

    这份资料由多个以字母顺序排列的文档组成,包括"函数大全(a开头).doc"、"函数大全(b开头).doc"、"函数大全(c开头).doc"、"函数大全(d开头).doc"和"函数大全(e开头).doc"等,每个文档分别针对以相应字母开头的函数...

    《你必须知道的495个C语言问题》

    *3.4 有这样一个巧妙的表达式:a^= b^= a^= b; 它不需要临时变量就可以交换a和b的值。 34 3.5 可否用显式括号来强制执行我所需要的计算顺序并控制相关的副作用?就算括号不行,操作符优先级是否能够控制计算顺序...

    C语言程序设计及应用 Word

    1. **数据类型**:C语言支持多种数据类型,包括基本类型(整型int、字符型char、浮点型float等)和复合类型(数组array、结构体struct、共用体union等)。 2. **变量声明**:在C语言中,必须先声明变量再使用。例如...

    你必须知道的495个C语言问题.pdf

    根据提供的文件标题、描述、标签以及部分内容,我们可以推断出这份文档主要涵盖了C语言学习过程中常见的495个问题及其解答。尽管部分内容未提供具体的知识点,但基于标题和描述,我们可以围绕C语言的基础概念、核心...

    你必须知道的495个C语言问题-高清完整带目录.pdf

    根据提供的文件信息,我们可以从《你必须知道的495个C语言问题-高清完整带目录》这本书中提炼出以下重要的C语言知识点: ### 1. 初始化 **知识点概述:** 初始化是为变量分配内存并赋予初始值的过程。在C语言中,...

    c99-variable-length-array.rar_ARGUMENT!

    描述中的问题 "Cannot use any variably-modified type with a template parameter or argument." 暗示了在C++的模板编程中使用VLA可能会遇到问题。C++标准并不包含VLA,因此在C++代码中直接使用C99的VLA会导致编译...

    嵌入式LINUX工程师面试题目C语言基础部分.pdf

    【嵌入式Linux工程师面试题目C语言基础部分】 在嵌入式系统开发中,C语言是基础中的...以上是C语言基础部分的详细解释,这些问题的掌握有助于理解C语言的核心概念,从而在嵌入式Linux开发中编写更健壮、高效的代码。

    flex_array.rar_flex

    它可能利用了C语言的内存管理函数如`malloc()`和`realloc()`来动态地分配和调整内存。在处理页的边界和内存扩展时,`flex_array`可能采用了链表或其他数据结构来管理页,以确保高效且灵活的内存使用。 `flex_array`...

Global site tag (gtag.js) - Google Analytics