Em có tham khảo trên mạng thì thấy họ dùng con trỏ cấp 2, 2 vòng for các kiểu thì mới tạo được mảng 2 chiều trong C quá phức tạp @@
// Copy trên mạng
double** array;
array = (double**) malloc(nX*sizeof(double*));
for (int i = 0; i < nX; i++)
{
array[i] = (double*) malloc(nY*sizeof(double));
/* then array[i][j] = values */
}
Song, em có hỏi một người quen khác thì được chỉ một cách khác như thế này:
int * MaTran = (int *) malloc(Hang*Cot*sizeof(int));
Và khi lấy phần tử thì: (Matrix + h * Cot + c)
Em không biết nó có khác nhau gì không ạ? Và nên dùng cách nào ạ?
bù lại chỉ cần 1 syscall và vùng nhớ được liên tục.
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?