double (*XX)[2]
是指向具有兩個double
元素的數組的指針。
double *XX[2]
是一個指向具有兩個double *
元素的數組的指針。
malloc
爲動態存儲器分配,例如:
char array_stack[2]; // 2 chars allocated on the stack (no need for free())
char *array_heap = malloc(2 * sizeof(char)); // 2 chars allocated on the heap
// later...
free(array_heap); // heap memory must be freed by user
供參考:
char array_stack[2]; // this is nevertheless a pointer
char *array = array_stack; // this works, because array_stack is a pointer to a char
有關堆棧和堆的更多信息:Stack vs Heap
double *XX[2] = malloc(2*N*sizeof(double));
不起作用,因爲它需要兩個元素作爲初始值設定項。例如:
double _1, _2;
double *XX[2] = {&_1, &_2};
如果你想要做這個使用malloc,你需要將其更改爲指向與雙指針數組是這樣的:在第一種情況下
double **XX = malloc(...);
來源
2014-09-25 12:29:25
d3L
你能否也請在我的問題上添加關於'malloc'做什麼的答案 – 2014-09-25 12:28:53