请教下面4行代码有什么区别?

无·法 2013-02-05 10:11:47
char* p;
p = malloc(1024*1024);



char* p;
p = (char *)malloc(1024*1024);


这两段有什么区别?
...全文
667 34 打赏 收藏 转发到动态 举报
写回复
用AI写文章
34 条回复
切换为时间正序
请发表友善的回复…
发表回复
就是那个党伟 2013-02-19
  • 打赏
  • 举报
回复
引用 10 楼 ForestDB 的回复:
引用 8 楼 sysdzw 的回复:我用的linux下的gcc,都能编译过去。 还得看你后缀名是什么。 第一个是隐式转换,类型严格的话就过不去了。 第二个是显示转换,不存在类型的问题了。
gcc本来就是编c的 g++的话,第一个可能就过不去了
心希盼 2013-02-19
  • 打赏
  • 举报
回复
没多大区别,就是编译器会不会通过的问题吧,因为malloc返回的是void*类型,可能需要强制转换一下
生生 2013-02-19
  • 打赏
  • 举报
回复
这要看编译器了,有的检查的严格,不过我觉得写成 char *p; p = (char *)malloc(1024*1024); 这样是比较正规,应该可以适应各种环境。
闭着眼刷牙 2013-02-19
  • 打赏
  • 举报
回复
建议使用第二种形式,根据编译器不同malloc返回的指针有所不同(如:void* ,char*)所以会报错!
xiakezhao 2013-02-19
  • 打赏
  • 举报
回复
mallo返回的是void *指针
Reage-- 2013-02-18
  • 打赏
  • 举报
回复
p = malloc(1024*1024)和p = (char *)malloc(1024*1024);的结果是一样的 p = malloc(1024*1024);应该会产生警告。因为没有显示转换成所需要的类型。编译器隐式转换了
sanae 2013-02-17
  • 打赏
  • 举报
回复
引用 25 楼 yanyue5230 的回复:
赋值语句,等号两边类型要一样。malloc函数返回的是空类型,所以要强制转换。
不一定要类型一样,但C++不存在从指针(void *)到其他指针(char *)的隐式转换 例如int a = 3.5是可以的,但类型不一样
leizh007 2013-02-16
  • 打赏
  • 举报
回复
liubo2013 2013-02-15
  • 打赏
  • 举报
回复
vs2008下第一种编译不过去 error C2440: “=”: 无法从“void *”转换为“char *” 第二种从代码规范也比较好些 实际意义没什么太大区别
简单美 2013-02-15
  • 打赏
  • 举报
回复
赋值语句,等号两边类型要一样。malloc函数返回的是空类型,所以要强制转换。
疯狂的红豆 2013-02-14
  • 打赏
  • 举报
回复
malloc返回的是一个void *指针类型,关于这个类型有很多的使用限制,一般都是将这种类型的转换为实际可用类型
nadleeh 2013-02-13
  • 打赏
  • 举报
回复
引用 楼主 sysdzw 的回复:
C/C++ code ? 12 char* p; p = malloc(1024*1024); 和 C/C++ code ? 12 char* p; p = (char *)malloc(1024*1024); 这两段有什么区别?
没区别,第二句让编译器高兴而已。
25K纯帅 2013-02-12
  • 打赏
  • 举报
回复
我用vc6.0,第一个不能通过
wizard_tiger 2013-02-07
  • 打赏
  • 举报
回复
LS都说了,路过学习一下。
swlilike 2013-02-07
  • 打赏
  • 举报
回复
这是个小游戏吗?
miss_chalk 2013-02-07
  • 打赏
  • 举报
回复
都一样,可能是编译器不同,需要不同的写法把。
无·法 2013-02-05
  • 打赏
  • 举报
回复
我用的linux下的gcc,都能编译过去。
xxyifan 2013-02-05
  • 打赏
  • 举报
回复
1.弱类型指针,可以转化为其它指针,应该是C代码 2.强类型指针,应该是c++代码
qq120848369 2013-02-05
  • 打赏
  • 举报
回复
都是存地址,g++会编译不过。
alfamoon 2013-02-05
  • 打赏
  • 举报
回复
ls +1 上面c 下面馆c++
加载更多回复(13)

69,374

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧