GEEK程序控 2015-08-05 12:43 采纳率: 33.3%
浏览 1480

C语言,刚刚学到malloc,有很大的疑问;

int * p = (int *)malloc (4);

我不明白为什么要进行强制类型转换(int*)

  • 写回答

6条回答 默认 最新

  • lpfly 2015-08-05 13:24
    关注

    因为赋值的时候,等号左右两边的类型应该是相同的。
    由于malloc()返回的是void *,而你左边的变量是int *,类型不匹配,所以在这里加了强行转换。
    虽然你不加强行转换也可以,但是编译器会自动帮你转换成int *,所以结果是一样的。

    评论

报告相同问题?

悬赏问题

  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料