记 malloc 奇怪的bug
介绍
写了一个项目,cpu + gpu ,不可避免的遇到 申请GPU的内存, 申请CPU的内存, CPU上的数组, 赋值来赋值去
遇到了奇怪的bug
malloc bugs
- malloc(): mismatching next->prev_size (unsorted)
2.malloc.c:2379: sysmalloc: Assertion `(old_top == initial_top (av) && old_size == 0) || ((unsigned long) (old_size) >= MINSIZE && prev_inuse (old_top) && ((unsigned long) old_end & (pagesize - 1)) == 0)' failed.
Sloved
-
malloc出来的东西 对应 free 掉
-
没用到的指针不要声明,也不要随意 malloc
-
不要用自己不熟的代码, 比如指针数组
-
不要把指针随意赋值给别人,想干嘛?
BYTE *msg[num];
???emmm 指针数组? 不熟,真不熟
指针数组
arr就是一个指针数组,它有四个元素,每个元素是一个char *类型的指针,这些指针存放着其对应字符串的首地址。
char *arr[4] = {"hello", "world", "shannxi", "xian"};
char *arr2[4];
arr[1] = malloc.... // ??? 不熟真不熟
//
数组指针
pa是一个指针指向一个char [4]的数组,每个数组元素是一个char类型的变量
char (*pa)[4];