![](https://lstatic.shangxueba.com/jiandati/h5/images/m_q_title.png)
申请一个具有n个int型元素的一维动态数组,可以使用下面的哪条语句?
A.p = (int *) malloc(n * sizeof(int));
B.p = (int *)calloc(n, sizeof(int));
C.p = (int *) malloc(n, sizeof(int));
D.p = (int *)calloc(n * sizeof(int));
E.int p[n];
F.p = (int *) realloc(n * sizeof(int));
A.p = (int *) malloc(n * sizeof(int));
B.p = (int *)calloc(n, sizeof(int));
C.p = (int *) malloc(n, sizeof(int));
D.p = (int *)calloc(n * sizeof(int));
E.int p[n];
F.p = (int *) realloc(n * sizeof(int));
A、ReDim Preserve d(n+2)
B、Dim d(n+2)
C、Dim Preserve d(n+2)
D、ReDim d(n+2)
E、ReDim d(n2)
A.#define N 10 int a[N];
B.#define n 5 int a[2*n]
C.int a[5+5];
D.int n=10,a[n];
B.inta[]=newint[5];
C.inta[]=new[5];
D.inta=newint[5];
A、int a[10];
B、int a0,a1,a2,a3,a4,a5,a6,a7,a8,a9;
C、int a[ ]=10;
D、int a[1-10];
A.int a[10]
B.iht a[2,5]
C.int a[]
D.int*a[10]:
A、执行函数调用时,系统自动在栈上为函数内的局部变量及形参分配内存,函数执行结束时,自动释放这些内存,这些无需程序员来管理。
B、函数free()的参数是指向被释放的动态内存的指针变量。
C、对于用动态内存分配函数申请的内存,其生存期由程序员自己来决定。
D、函数free的函数原型是 void* free(void* p); 表示函数没有返回值。
E、程序运行结束以后,所有内存自然会随之马上释放并归还给系统,因此即使不释放不再使用的动态内存,也不会有什么问题。
F、执行函数调用时,系统在堆上为函数内的局部变量及形参分配内存,函数执行结束时,需要程序员用free()函数释放这些内存。
G、用动态内存分配函数来申请的内存都是从栈上分配的。
H、栈的特点是先进先出。
I、用free释放指针变量所指向的内存以后,就意味着该指针变量变成了空指针。
A、无论是在栈上还是在堆上分配的内存都需要程序员用free来释放。
B、用return语句既可以从函数返回调用动态内存分配函数动态申请的内存的地址,也可以从函数返回在函数内定义的局部变量的地址。
C、在动态分配一块内存后,接下来又丢失了对这块内存的追踪路径,这种错误属于悬空指针即野指针。
D、对于用动态内存分配函数申请的内存,如果在使用结束后不释放的话,会发生内存泄漏。
E、对于用动态内存分配函数申请的内存,如果在释放以后还继续使用的话,那么会产生非法内存访问的错误。
F、用free释放指针指向的内存以后,仍然继续访问指针所指向的内存,将导致产生悬空指针,也称为野指针。
G、计算动态分配内存的字节数的时候,应该始终使用sizeof运算符,因为某些类型在不同的系统下所占内存空间的字节数是不同的。
H、为了避免内存分配不成功就使用它,应该在使用内存前检查指针是否为空指针。
为了保护您的账号安全,请在“简答题”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!