关于C获取整型数组的长度
- 在形参中传递整型数组时应该顺带传递长度n(我没想到其他方法呀)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void test(int * test);
int main()
{
int a[] = {1,2,3,4,5};
printf("main:%d, length:%d.\n",sizeof(a),sizeof(a)/sizeof(int));
test(a);
return 0;
}
void test(int * test)
{
printf("test:%d, length:%d.\n",sizeof(test),sizeof(test)/sizeof(int));
} - 输出
1
2main:20, length:5. // 返回的是内含5个整型的数组大小,5*4=20字节
test:8, length:2. // 返回的是整形指针的大小8字节关于free()函数
- free()释放的是指针指向的内存,并没有将指针释放
1
2
3
4
5
6
7
8
9
10// free()后并没有将指针指向NULL(0x0000这个逻辑地址)
// 并且free()掉的这段内存将被放到一段内存池中,如果有合适的malloc就会分配这段内存
while(current != NULL)
{
current=head;
head=current->next;
printf("释放之前的地址:%p\n",current);
free(current);
printf("释放之后的地址:%p\n",current);
} - 输出
1
2释放之前的地址:0x9a3010
释放之后的地址:0x9a3010
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 年轻没有梦!
评论