Chuyên mục
- . (1)
- ASP.Net (3)
- Cấu trúc dữ liệu và giải thuật. (6)
- Computer Science (1)
- Suy ngẫm (6)
- Thơ hay (1)
- Tự kỷ - nhật ký (3)
Trang
Ngẫu hứng

- Momen
- Khi tối trời thì nhìn cũng đẹp trai sáng sủa , im lặng không nói thì cũng có vẻ thông minh hiểu biết, đi ngủ rồi thì cũng hiền lành củ khoai, đứng một mình thì cũng có vẻ nổi trội
Tổng số lượt xem trang
17431
Được tạo bởi Blogger.
27 thg 3, 2010
Khai báo mảng động 2 chiều trong C++.
Dùng con trỏ 2 lần được đấy. Ví dụ, muốn tạo một mảng 2 chiều kiểu int cỡ M*N (đại khái tương tự như khai báo "int a[M][N]" trong đó M, N không nhất thiết là hằng), bạn cần
- tạo một mảng 1 chiều x kiểu int cỡ M*N
- tạo một mảng 1 chiều a gồm M con trỏ int
- cho mỗi con trỏ trong a trỏ đến một địa chỉ của một dòng trong X.
Code:
/* ngôn ngữ C */
int *x, **a, i;
x = malloc(M*N*sizeof(int));
a = malloc(M*sizeof(int*));
for(i=0;i
{
a[i] = x+i*N;
}
Sau đó có thể dùng a như một mảng hai chiều, như thế này: a[i][j]
Cách khác là :
Có thể làm như sau.
int **a = (int**)malloc(m*sizeof(int*));
for(int i=0; i
{
a[i] = (int*)malloc(n*sizeof(int));
}
Cách này không hay bằng cách trên. Nhưng dễ nhớ hơn.
- tạo một mảng 1 chiều x kiểu int cỡ M*N
- tạo một mảng 1 chiều a gồm M con trỏ int
- cho mỗi con trỏ trong a trỏ đến một địa chỉ của một dòng trong X.
Code:
/* ngôn ngữ C */
int *x, **a, i;
x = malloc(M*N*sizeof(int));
a = malloc(M*sizeof(int*));
for(i=0;i
{
a[i] = x+i*N;
}
Sau đó có thể dùng a như một mảng hai chiều, như thế này: a[i][j]
Cách khác là :
Có thể làm như sau.
int **a = (int**)malloc(m*sizeof(int*));
for(int i=0; i
{
a[i] = (int*)malloc(n*sizeof(int));
}
Cách này không hay bằng cách trên. Nhưng dễ nhớ hơn.
Đăng ký:
Đăng Nhận xét (Atom)
0 nhận xét:
Đăng nhận xét