警告:這是一個C的答案。你的回答對我來說是正確的,但更好的方法是這樣的:
#define BUFFER_DIM_1 4
#define BUFFER_DIM_2 50
int i;
char **buffer;
/* Create an array of pointers to the lower level */
buffer = malloc(BUFFER_DIM_1 * sizeof(char *));
for (i=0; i<BUFFER_DIM_1; i++) {
buffer[i] = malloc(BUFFER_DIM_2 * sizeof(char));
}
然後你可以使用你的建議。
對心臟的勇敢,你可以只用兩個mallocs去一些聰明指針工作:
#define BUFFER_DIM_1 4
#define BUFFER_DIM_2 50
int i;
char **buffer;
/* Create an array of pointers to the lower level */
buffer = malloc(BUFFER_DIM_1 * sizeof(char *));
buffer[0] = malloc(BUFFER_DUM_1 * BUFFER_DIM_2 * sizeof(char));
for (i=1; i<BUFFER_DIM_1; i++) {
buffer[i] = buffer[i-1] + BUFFER_DIM_2 * sizeof(char);
}
最後,不要忘記釋放所有此內存,當你不再需要它。
這看起來對我來說更C,然後C++ – pyCthon