返回列表 发帖

动态二维数组分配问题!

我们最常见的方法是: 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); }

返回列表

最新关注 关闭


关于论坛注册,最新修改,请网友们注意

由于最近大量垃圾信息出现在我们的论坛,为了营造一个良好的氛围,目前论坛只开发邀请注册,你可以点击以下链接自动邀请注册(如果有人使用了点击下一个试一试) ...


查看
珩源工控论坛热诚欢迎您联系我们进行合作!

Powered by Discuz! 7.2© 2001-2009 Comsenz Inc.

珩源工控论坛 ( 桂ICP备19004328号) |论坛统计|WAP| 客服中心-www.hymcu.com
  

GMT+8, 2024-11-24 15:20, Processed in 1.057669 second(s), 6 queries, Gzip enabled.