由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - C里面一个被分配了内存的指针如何知道分配了多少?
相关主题
怎么得到char *分配空间的大小?C: struct 里面一个CHAR, 一个INT, 这个STRUCT 占多少字节?
如何模拟实现thrashing?一个关于空间分配的问题
数组定义的时候,分配空间了么?初学C,对什么该free一直搞不明白
在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)free(char *)的问题 (转载)
difference between: char** p and char*p[] ??a=(char **)malloc(12*sizeof(char *)) 是什么意思?
再问:关于多维数组的malloc再问一个free()的问题
大家新年好。 请教一个 c interview question问个c语言的问题
数组分配问题,求教狠偷懒狠偷懒的一个测试
相关话题的讨论汇总
话题: 分配话题: char话题: 指针话题: malloc话题: sizeof
进入Programming版参与讨论
1 (共1页)
m*t
发帖数: 7490
1
例如已经分配了20bytes的一个指针
char *p=(char *)malloc(sizeof(char)*20);
这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
不知道有没有什么函数能够返回20这个值?
t****t
发帖数: 6806
2
no

【在 m*t 的大作中提到】
: 例如已经分配了20bytes的一个指针
: char *p=(char *)malloc(sizeof(char)*20);
: 这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
: 不知道有没有什么函数能够返回20这个值?

m****t
发帖数: 37
3
java可以ms...

【在 m*t 的大作中提到】
: 例如已经分配了20bytes的一个指针
: char *p=(char *)malloc(sizeof(char)*20);
: 这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
: 不知道有没有什么函数能够返回20这个值?

s*****k
发帖数: 604
4
我觉得是 malloc 和 free 会维护一个记录表,你看不到而已。不同的系统实现好像不
太一样的。

【在 m*t 的大作中提到】
: 例如已经分配了20bytes的一个指针
: char *p=(char *)malloc(sizeof(char)*20);
: 这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
: 不知道有没有什么函数能够返回20这个值?

p***m
发帖数: 387
5
this is every C programmer's dream
z**k
发帖数: 629
6
非编译系统功能,自己实现吧.
K*****n
发帖数: 65
7
In Visual C++,
char *p=(char *)malloc(sizeof(char)*20);
int size = *( (int*)((char*)p-16) ); //size = 20 as expected
p********o
发帖数: 640
8
分配的时候 标记下 就知道了哈哈
一般传字符串参数的时候也会带长度啊
传结构体 也是有结构的
感觉这个长度还是挺好控制的嘛O(∩_∩)O

【在 m*t 的大作中提到】
: 例如已经分配了20bytes的一个指针
: char *p=(char *)malloc(sizeof(char)*20);
: 这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
: 不知道有没有什么函数能够返回20这个值?

r*********r
发帖数: 3195
9
肯定没看过 K&R 的c语言书。
m****t
发帖数: 37
10
最简单的办法
分配前sbrk(0)获得分配前堆顶
分配后sbrk(0)获得分配后堆顶
把两个一减
不过malloc都是按照字节对齐分配的,应该分配了32个bytes吧

【在 m*t 的大作中提到】
: 例如已经分配了20bytes的一个指针
: char *p=(char *)malloc(sizeof(char)*20);
: 这时用sizeof(p)只能返回 这个指针变量自身的空间大小,32位系统是4,而不是20
: 不知道有没有什么函数能够返回20这个值?

1 (共1页)
进入Programming版参与讨论
相关主题
狠偷懒狠偷懒的一个测试difference between: char** p and char*p[] ??
一个指向指针的指针的引用?再问:关于多维数组的malloc
数组问题大家新年好。 请教一个 c interview question
为什么要这样计算数中元素的个数?数组分配问题,求教
怎么得到char *分配空间的大小?C: struct 里面一个CHAR, 一个INT, 这个STRUCT 占多少字节?
如何模拟实现thrashing?一个关于空间分配的问题
数组定义的时候,分配空间了么?初学C,对什么该free一直搞不明白
在子函数内开内存,返回主函数指针然后释放空间是不是很糟糕的(转载)free(char *)的问题 (转载)
相关话题的讨论汇总
话题: 分配话题: char话题: 指针话题: malloc话题: sizeof