IMG-LOGO
Trang Chủ Lập Trình C [Share Code] Tìm hiểu pointer + malloc + calloc + realloc trong C - Lập trình C
×

Lý Thuyết

01 - Nhập môn cho người mới bắt đầu - Lập trình C 02.Flowchart & ví dụ viết flowchart của phương trình bậc 1 - Lập Trình C 03. Hướng dẫn cài đặt môi trường lập trình C - Lập trình C 04. Tìm hiểu biến & kiểu dữ liệu trong C - Lập trình C 05. Toán tử & biểu thức login trong C - Lập Trinh C 06. Nhập dữ liệu trong C (scanf, printf) - Lập trình C 07. Nhập xuất dữ liệu phần 2 - Lập Trình C 08. Tìm hiểu if, else, switch trong lập trình C - Lập Trình C 09. Tìm hiểu về vòng lặp for trong C - Lập trình C 10. Tìm hiểu while, do..while trong lập trình C - lập Trình C 11. Tìm hiểu mảng 1 chiều trong C - Lập trình C 12. Tìm hiểu mảng 2 chiều - Lập Trình C 15. Tìm hiểu pointer phần 3 - Lập trình C 14. Tìm hiểu pointer phần 2 - Lập Trình C 13. Tìm hiểu pointer phần 1 - Lập Trình C 16. Tìm hiểu function trong lập trình C - Lập Trình C 17. Tìm hiểu string trong lập trình C - Lập Trình C 18. Struct trong C - Lập Trình C 1000 Bài tập C - Lập Trình C BT02 - Hướng dẫn chữa bài Fibonaci - Lập Trình C BT03. Ôn luyện - Sắp xếp trong C, con trỏ cấp phát động BT04. Hướng dẫn chừa bài tập quản lý rạp chiều phím - Lập trình C

Bài Tập

Bài tập - Chuyển flowchart sang code - Lập trình C Bài tập - Ôn tập biến + kiểu dữ liệu + scanf & printf - Lập trình C Bài tập - Nhập xuất thông tin sinh viên - Lập trình C Bài tập - Giải phương trình bậc 2 - Lập trình C Bài tập - Giải hệ phương trình bậc nhất nhất 2 ẩn - Lập trình C Bài tập - Tìm min & max - số lớn nhất & nhỏ nhất - Lập trình C Loop - Viết chương trình Reserve chuỗi - Lập trình C Loop - Switch case - Chương trình quản lý sinh viên - Lập trình C Fibonacci - Lập trình C Ôn tập While, Do .. While, For lập trình C - Lập trình C Tính tổng mảng N phần tử - Lập trình C Bài tập ôn luyện mảng 1 chiều - Lập trình C Bài tập ôn tập String - Lập trình C Bài tập ôn luyện Function - Lập trình C Tách phần tử chẵn + lẻ trong C - Lập trình mảng trong C - Lập trình C Bài toán sắp xếp trong C - Lập trình C Bài toán pointer đầu tiên - Hello pointer - Lập trình C Bài tập pointer nâng cao - cấp phát động - Lập trình C Bài tập - Quản lý hình chữ nhật - struct trong C - Lập trình C Tìm kiếm chuỗi trong chuỗi - Lập trình C Bài tập FILE - Lập trình C Bài tập - ôn tập nhật xuất và biểu tức toán học - Lập trình C Bài tập - Giải phương trình bậc 1 - giải phương trình bậc nhất - Lập trình C Ôn tập function - viết chương trình máy tính - Lập trình C Bài tập tổng quát - quản lý mảng số nguyên - Lập trình C Bài tập nâng cao pointer - Lập trình C

Examination & Test

[Test] Kiểm tra 60 phút - if, else, switch, loop trong C - Lập trình C [Test] Kiểm tra 60 phút - Lập trình C

Tài Liệu Học

C - Basic Syntax(Cú pháp cơ bản)




[Share Code] Tìm hiểu pointer + malloc + calloc + realloc trong C - Lập trình C

by GokiSoft.com - 15:19 21/09/2020 2,343 Lượt Xem



#include <stdio.h>
#include <stdlib.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */

int main(int argc, char *argv[]) {
	//Vidu: nhap 1 so nguyen x
	int x;
	printf("\nNhap x = ");
	scanf("%d", &x);//x = 10
	
	printf("\ngia tri: %d, dia chi: %X", x, &x);
	
	//Pointer => la 1 bien => dia chi & du lieu luu => dia chi cua 1 bien khac
	//Khai bao pointer
	int *p;
	//dia chi pointer p => &p
	//gia tri cua pointer => p
	
	p = &x;
	//gia tri bien ma con tro dang tro toi
	//*p => tra ve gia tri cua bien no dang tro toi => gia cuoi cung
	printf("\nDia chi: %X, gia tri: %X, gia tri cuoi cung: %d", &p, p, *p);
	
	//Bat dau test
	x = 10;
	*p = *p + 1;
	printf("\n x = %d, *p = %d", x, *p);
	
	x++;
	printf("\n x = %d, *p = %d", x, *p);
	
	*p = x + 2;
	printf("\n x = %d, *p = %d", x, *p);
	
	int *q;
	q = p;
	
	*q = *p + 2;
	printf("\n x = %d, *p = %d, *q = %d", x, *p, *q);
	printf("\n &x = %X, p = %X, q = %X", &x, p, q);
	
	//Tim hieu mang 1 chieu
	int t[5], i;
	//Nhap phan tu cua mang
	printf("\nNhap phan tu cua mang t");
	for(i=0;i<5;i++) {
		printf("\nNhap t[%d] = ", i);
		//scanf("%d", &t[i]);
		scanf("%d", t + i);
	}
	
	int *k;//*k = t => khai bao nhanh.
	k = t;
	for(i=0;i<5;i++) {
		printf("\nNhap k[%d] = %d", i, k[i]);
	}
	//t -> 1, 7, 0, 2, 10
	*k++;
	printf("\n*k = %d, *t = %d", *k, *t);
	//Mang dong.
	int *f;
	//Lam the nao cap phat bo nho cho mang f => cap phat cho mang f => gom 3 so nguyen
	f = (int *) malloc (3 * sizeof(int));
	//cap phat cho con tro f => 1 mang gom 3 phan tu
	//int f[3];
	
	for(i=0;i<3;i++) {
		printf("\nNhap f[%d] = ", i);
		scanf("%d", f + i);
	}
	
	free(f);//giai phong du lieu cap phat cho f.
	
	//calloc & realloc.
	//tao mang dong : t0 => 1, t1 => 3, t2 => 5, t3 => 8
	int *fk;
	fk = (int *) calloc (1, sizeof(int));
	for(i=0;i<1;i++) {
		printf("\nNhap fk[%d] = ", i);
		scanf("%d", fk + i);
	}
	//luc sau so luong phan tu mang fk => tang them 2 => length: 3
	fk = (int *) realloc (fk, 3 * sizeof(int));
	for(i=1;i<3;i++) {
		printf("\nNhap fk[%d] = ", i);
		scanf("%d", fk + i);
	}
	
	for(i=0;i<3;i++) {
		printf("\nNhap fk[%d] = %d", i, fk[i]);
	}
	
	return 0;
}




Theo dõi cập nhật nội dung học trên Youtube & Facebook


Bình luận



Chia sẻ từ lớp học

Phân Loại Bài Viết

Danh Sách Bài Học

Đã sao chép!!!