What represents dynamic allocation in C?
4 phương ánCó giải thích
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "int* a = (int*)malloc(5*sizeof(int));". Cấp phát động nghĩa là xin bộ nhớ lúc chương trình đang chạy, với kích thước có thể tính ra tại thời điểm đó, và vùng xin được nằm trên heap, sống tới khi được giải phóng. Hàm malloc làm đúng việc đó: nhận số byte cần, trả về địa chỉ đầu vùng nhớ hoặc con trỏ rỗng khi thất bại, nên phải gán vào một con trỏ. Lựa chọn "int a[5];" là mảng tự động, kích thước cố định ghi sẵn lúc dịch và vùng nhớ bị thu hồi khi ra khỏi khối. Lựa chọn "int a[5][5];" chỉ là mảng hai chiều, bản chất vẫn là cấp phát theo khai báo. Lựa chọn "free(a);" đứng ở đầu bên kia của vòng đời: nó trả vùng nhớ đã cấp phát về cho hệ thống, không xin thêm ô nhớ nào.
Cùng phần 5
What will be the output of the following C code?
#include <stdio.h>
void main()
{
int *ptr, a = 10;
ptr = &a;
*ptr += 1;
printf("%d,%d\n", *ptr, a);
}Có lời giảiCâu hỏi(Choose 1 answer)
What is the output of this C code?
#include <stdio.h>
#include <conio.h>
int main() {
int n = 267, *pn = &n;
char* pc = pn;
*pc = 0;
printf("n = %d", n);
return 0;
}Có lời giảiCâu hỏiWhat will be the output of the C program?
int arr[5] = { 2, 3, 5, 4, 7 };
int *ptr = (&arr + 1);
printf("%d %d\n", *(arr + 1), *(ptr - 1));Có lời giảiCâu hỏiCả 41 câu của chủ đề41 câu
Xuất hiện trong 1 bộ đề
Đi tiếp từ đây