【发布时间】:2012-01-15 18:26:10
【问题描述】:
我已经通过这个sudo apt-get install build-essential 命令安装了 gcc 编译器
我的程序代码是
#include<stdio.h>
main()
{
int *b;
b = (int*)malloc(10*sizeof(int));
printf("b=%u\n\n",b);
printf("b+1=%u\n\n",(b+1));
printf("b+2=%u\n\n",(b+2));
b[2]=4;
printf("*(b+2)=%d\n\n",*(b+2));
}
当我尝试从cc -c program.c 命令编译这个程序时
然后我得到一些错误
【问题讨论】:
-
你不应该转换
malloc的返回值。这只是隐藏错误的好方法。 -
你的大学视频教程是为旧版本的 gcc 制作的,应该更新 :) 嗯,等一下?编程视频教程?阅读和理解文本发生了什么?无论如何,你都需要它来很好地编程......
-
打印出指针的值也很奇怪。这是一个完全没有意义的值。考虑到您可能永远不会再这样做了,不确定这个演示向您展示了什么。编译器只是警告你指针是 not
unsigned ints. -
@CodyGray 转换
malloc的返回值是一种兼容C++的方式。但这里肯定没有必要。 -
为什么h***你是以root用户登录来编译你的代码?
标签: c linux ubuntu-11.04