14/07/09 23:21:17.86 pM8TBiOn
ポインターに詳しいリーダーに質問です。
知人が書いた関数のソースなのですが、どう動いているのか分かりません。
御教授願います。
#include <stdlib.h>
void *genMatrixList(unsigned int list_length, unsigned int line_size, unsigned int column_size, size_t element_size){
char *linear;
void **line_pointer_buf, **matrix_pointer_buf;
unsigned long counter;
linear = (char*)malloc(element_size * column_size * line_size * list_length);
line_pointer_buf = (void**)malloc(sizeof(void*) * line_size * list_length);
matrix_pointer_buf = (void**)malloc(sizeof(void*) * list_length);
counter = 0;
while(counter < line_size * list_length){
line_pointer_buf[counter] = (void*)&linear[element_size * column_size * counter];
counter ++;
}
counter = 0;
while(counter < list_length){
matrix_pointer_buf[counter] = (void*)&line_pointer_buf[line_size * counter];
counter ++;
}
return (void*)matrix_pointer_buf;
}