|
网站首页
|
业界新闻
|
小组
|
威客
|
人才
|
下载频道
|
博客
|
代码贴
|
在线编程
|
编程论坛
|
登录
注册
短消息
我发表的主题
我参与的主题
我收藏的贴子
我上传的附件
我下过的附件
编辑个人资料
我的博客
用户控制面板
搜索
道具
恢复默认风格
碧海青天
秋意盎然
棕红预览
粉色回忆
蓝雅绿
紫色淡雅
青青河草
e点小镇
橘子红了
红红夜思
水晶紫色
雪花飘飘
新年快乐
风格
短消息
论坛展区
帮助
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 分配5个字节的内存,sizeof的结果却是4??
我的收件箱(0)
欢迎加入我们,一同切磋技术
用户名:
密 码:
共有
896
人关注过本帖
标题:
分配5个字节的内存,sizeof的结果却是4??
只看楼主
加入收藏
离开天空的云
等 级:
论坛游侠
帖 子:110
专家分:198
注 册:2011-8-12
结帖率:
100%
楼主
收藏
已结贴
√
问题点数:10 回复次数:4
分配5个字节的内存,sizeof的结果却是4??
#include<stdio.h>
#include<malloc.h>
int main(void)
{
char *a;
a=(char *)malloc(5);
printf("%d",sizeof(a));
getch();
return 0;
}结果输出的是4 ,为什么??
搜索更多相关主题的帖子:
return
include
内存
2011-12-04 20:56
举报帖子
使用道具
赠送鲜花
我菜119
等 级:
青峰侠
帖 子:938
专家分:1756
注 册:2009-10-17
第
2
楼
收藏
得分:3
就算你分配100000000000个,照样也是4
a是一个指针变量,win32下会分配4个字节的空间存放。
举一个例子:
void func(char a[])
{
printf("%d\n", sizeof(a)); //这又是?
}
int main()
{
char str[] = "hello world";
printf("%d\n", sizeof(str)); //这是?
func(str);
return 0;
}
愿用余生致力编程
2011-12-04 21:05
举报帖子
使用道具
赠送鲜花
原味好
来 自:西安
等 级:
业余侠客
帖 子:59
专家分:250
注 册:2011-11-29
第
3
楼
收藏
得分:3
调用malloc函数后返回的是给你分配的内存空间的首地址,所以你输出的是内存地址编号所占的字节数,实际给你分配了5个字节的空间的
2011-12-04 21:10
举报帖子
使用道具
赠送鲜花
小鱼儿c
等 级:
贵宾
威 望:
14
帖 子:852
专家分:1317
注 册:2011-4-1
第
4
楼
收藏
得分:3
以下是引用
我菜119
在2011-12-4 21:05:51的发言:
就算你分配100000000000个,照样也是4
a是一个指针变量,win32下会分配4个字节的空间存放。
举一个例子:
void func(char a[])
{
printf("%d\n", sizeof(a)); //这又是?
}
int main()
{
char str[] = "hello world";
printf("%d\n", sizeof(str)); //这是?
func(str);
return 0;
}
嗯嗯,对。。这个我也只是明白,但不很了解。。主要有点忘了。。
看看那个c语言进阶一本书里面有
用心做一件事情就这么简单
2011-12-04 22:16
举报帖子
使用道具
赠送鲜花
wangkangluo1
等 级:
新手上路
帖 子:4
专家分:9
注 册:2011-12-6
第
5
楼
收藏
得分:0
4 是指针的大小 32位系统 地址刚好4个字节 你到64位系统上看 就是8
2011-12-08 14:34
举报帖子
使用道具
赠送鲜花
5
1/1页
1
快速回复:
分配5个字节的内存,sizeof的结果却是4??
数据加载中...
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 0.024817 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved