Cấp phát bộ nhớ tĩnh
Khi khai báo các biến (int, float,..), mảng, chuỗi kí tự,(int a[20], char s[30]).. Trình biên dịch cấp phát vùng nhớ (static memory) cho các biến này. Vì vùng nhớ giành cho các (biến, mảng, chuỗi,..) là static memory nên việc gán con trỏ tới vùng nhớ tĩnh được gọi là cấp phát bộ nhớ tĩnh. Vùng nhớ được cấp phát trong lúc biên dịch.
#include <stdio.h> #include <conio.h> void main() { char s[] = "vncoding forum"; char *p = &s[0]; printf("%s", p); getch(); }
Cấp phát bộ nhớ động
Sử dụng hàm malloc(), calloc() để cấp phát bộ nhớ động. Giá trị trả về của malloc(), calloc() là con trỏ trỏ tới vùng nhớ được cấp phát. Vùng nhớ được cấp phát trong lúc chạy chương trình (runtime)
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> void main() { char *s = (char*)malloc(30); if (s) { strcpy(s, "vncoding forum"); printf("%s", s); free(s); } getch(); }
Leave a Reply
You must be logged in to post a comment.