Board logo

标题: 动态二维数组分配问题! [打印本页]

作者: crazytyt    时间: 2007-6-15 18:40     标题: 动态二维数组分配问题!

我们最常见的方法是: char ** pp; pp = (char**)malloc(sizeof(char*)*size); for (int i = 0; i++; i < size){ pp = (char*)malloc(sizeof(char)*sizetwo) } 牛人方法是: struct xxx **x; x = (struct xxx **) darray_new(5, 4, sizeof(struct xxx)); ... 这里就可以用 x[1][3] ... x[0][3] ... 来操作了:) ... darray_free(x); #include #include #include void **darray_new(int row, int col, int size) { void **arr; arr = (void **) malloc(sizeof(void *) * row + size * row * col); if (arr != NULL) { void *head; head = (void *) arr + sizeof(void *) * row; memset(arr, 0, sizeof(void *) * row + size * row * col); while (row--) arr[row] = head + size * row * col; } return arr; } void darray_free(void **arr) { if (arr != NULL) free(arr); }




欢迎光临 珩源工控论坛 (http://bbs.hymcu.com/) Powered by Discuz! 7.2