0
我有一些問題理解指針C地塊分割c語言
我有矩陣然後我通過使用
tiles_num = n /tile;
// Allocate blocked matrix
Ah = (REAL **) malloc(tiles_num * tiles_num * sizeof(REAL *));
if (Ah == NULL) {
printf("ALLOCATION ERROR (Ah)\n");
exit(-1);
}
for (j = 0; j < tiles_num * tiles_num; j++) {
Ah[j]=(REAL *) malloc(tile * tile * sizeof(REAL));
if (Ah[ j ] == NULL) {
printf("ALLOCATION ERROR (Ah[%d])\n", j);
exit(-1);
}
}
在那裏分成小塊(tiles_num較小塊的數,n是矩陣的一維,瓦是小塊的大小)
之後,我想給一個函數只是一個指向超級塊的開始的指針,然後函數將在小塊 之間移動,例如,如果我有N = 12和su perblock = 4和smallblock = 2。 1-so我如何給出啓動超級塊的功能點,然後通過小塊移動到內部?
2 - 我想知道A [k]是否與參考A + k相同?
不要在'C中輸入'malloc'的結果。這樣做可能很危險,因爲如果忘記爲'malloc'包含頭部,編譯器會認爲'malloc'返回'int'。通過強制轉換,您迫使編譯器將'malloc'的結果解釋爲將int轉換爲REAL *或REAL **,如果sizeof(int)!= sizeof會導致嚴重的問題(REAL *)'。如果沒有強制轉換,編譯器必須發出診斷消息(通常是警告),並且很明顯,您忘記了包含'' –
dreamlax