`

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函数时才被释放。

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

相关推荐

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

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

    array算IP地址的C语言题

    array算IP地址的C语言题 程序a.c 如下: #include <stdio.h> #include <stdlib.h> typedef struct MY_IP { int xx,yy,zz,mm; char name[11]; } MY_IP; void scan_address(char *namein, MY_IP *ip, int *...

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

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

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

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

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

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

    《数据结构 1800题》

    THEN A[j]与A[j+1]对换; 其中 n为正整数,则最后一行的语句频度在最坏情况下是(D ) 郴州都市网 www.0735.cc郴州人才网 www.CZHR.com www.989.org 《数据结构 1800题》 A. O(n) B. O(nlogn) C. O(n3)...

    C语言FAQ 常见问题列表

    难道在C语言中一个结构不能包含指向自己的指针吗? o 2.7 怎样建立和理解非常复杂的声明?例如定义一个包含 N 个指向返回指向字符的指针的函数的指针的数组? o 2.8 函数只定义了一次, 调用了一次, 但编译器提示...

    C语言编程要点

    2.11. 对不同类型的变量进行算术运算会有问题吗? 25 2.12. 什么是运算符升级(operatorpromotion)? 25 2.13. 什么时候应该使用类型强制转换(typecast)? 26 2.14. 什么时候不应该使用类型强制转换(typecast)? 27 2.15....

    c-language-topicwise:所有C程序按主题

    C语言程序的主题:1.变量2.数据类型3.if-else 4.for循环5.nested if 6.while 7.nested而8.pattern基于循环9.switch,break,continue 10.动态内存分配11 。静态内存分配12.calloc,malloc,realloc,free 13.指针14....

    按主题进行C程序:按主题进行所有C程序

    C语言程序的主题:1.变量2.数据类型3.if-else 4.for循环5.nested if 6.while 7.nested而8.pattern基于循环9.switch,break,continue 10.动态内存分配11 。静态内存分配12.calloc,malloc,realloc,free 13.指针14....

    C 语言编程常见问题解答.chm

    C语言编程常见问题解答(目录) 第l章 C语言 1. 1 什么是局部程序块(local block)? 1. 2 可以把变量保存在局部程序块中吗? 1. 3 什么时候用一条switch语句比用多条if语句更好? 1. 4 switch语句必须包含...

    c++ 面试题 总结

    6.下面是C语言中两种if语句判断方式。请问哪种写法更好?为什么? int n; if (n == 10) // 第一种判断方式 if (10 == n) // 第二种判断方式 如果少了个=号,编译时就会报错,减少了出错的可能行,可以检测出是否少...

    C语言安全编码数组记法的一致性

    对C语言程序来说,在同一文件中时,void func(char *a); 和 void func(char a[]); 完全等价 但在函数原型之外,如果一个数组在一个文件... a = (char*)malloc(ARRAYSIZE); if(a == NULL) { //处理分配错误 } ins

    C语言的Struct Hack笔记

    最近在搞Compiler的CodeGenerator实验,有一... // int array[] not support in Carray = (int*)malloc(sizof(int)*10);printf(“%d\n”,sizof(array)/sizeof(int)); // 1但很可惜这样是错误的,因为malloc操作在堆上

    连接两个链表c语言

    }}link create_list(int array[],int num){ link tmp1,tmp2,pointer;int i;pointer=(link)malloc(sizeof(node));pointer->data=array[0];tmp1=pointer;for(i=1;i;i++){ tmp2=(link)malloc(sizeof(node)); tmp2->...

    c/c++ 学习总结 初学者必备

    f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers) g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and...

Global site tag (gtag.js) - Google Analytics