在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
专题: 动态内存分配 (所有高级语言,没有C里深刻)
传统数组的缺点:
例子 int a[5]; //必须事先指定,而且只能是常整数 int len = 5; int a[len];//error
在一个函数运行期间,系统为该函数中的数组分配的空间会一直存在。直到该函数运行完毕时,数组的空间才会被系统自动释放。 例子: void f(void){int a[5]={1,2,3,4,5};....} //数组a 占20个字节的内存空间,程序员无法手动编程释放它,数组a只能在f()函数结束被系统释放
#include<stdio.h> void g(int * pArr, int len) { pArr[2] = 88; //parr[2]==a[2] 等价于 } void f(void) { int a[5] = {1,2,3,4,5}; //数组a 只在f()执行时有效 g(a,5); printf("%d\n", a[2]); } int main(void) { f(); // 结果: 88 //printf("a[0] = %d\n", a[0]); // error return 0; }
|
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论