c pointer
2016-08-21
c语言 and pointer
指针相关
1.** glibc detected ** ./19: munmap_chunk(): invalid pointer: 0x00007ffff5cc97b0 ***
a) free释放内存出现,注意free只能释放malloc分配的内存,在function中看到是指针,这个指针有可能是定义的数组,无法释放
2. 二维数组和指针的指针区别( type [][]与 type **)
虽然两种方式在使用的时候访问方式是通用的,差异主要在内存组织
二维数组是一个连续的区域,如char a[2][3] 实际上是一个连续的sizeof(char)*2*3的内存区域。在变量定义时候已经确立整数组存储数据集合容纳数据大小,
并且没一行数据的个数必须一样,无法扩容;
指针指针是是通过先分配type * 来存储二维数组中一维,然后在分配type 来维持二维数组二维。存储数据集合和动态调整,没一行的个数可以不同。
eg:内存组织图,type标识数据类型