01/10/2018, 15:23 
               
            Thắc mắc về tạo mảng 2 chiều bằng malloc trong C
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ài liên quan
         
               
            




Nếu dùng mảng 1 chiều thì điều đầu tiên dễ thấy là cú pháp không tự nhiên bù lại chỉ cần 1 syscall và vùng nhớ được liên tục.
Nhưng dùng mảng con trỏ thì thao tác ma trận sẽ dễ dàng hơn, như tráo đổi dòng chẳng hạn.