关于未定义的问题,也就是编译时出现的WinMain@16的问题

raullpq 2003-03-26 02:28:58
小弟刚开始看c++ primer这本书,有个练习我想了半天还是觉得没有什么问题,请各位大虾帮我看看。谢谢了!
int foobar(int *pi) {
*pi = 1024;
return *pi;
}

int mian()
{
int *pi2 = 0;
int ival = foobar( pi2 );
return 0;
}
...全文
232 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
luixui 2003-03-26
  • 打赏
  • 举报
回复
呵呵
raullpq 2003-03-26
  • 打赏
  • 举报
回复
谢谢,明白了。要继续啃书了:)
TopCat 2003-03-26
  • 打赏
  • 举报
回复
“编译成功”只是告诉你语法不错,不代表这个程序可以按你的意图运行。

指针使用之前需要指向一个有效的内存,不过可以不是自己分配的,也可以是其他指针事先分配好的,或者就是一块有效内存。比如:

int *p1 = new int(4); //自己分配的内存
int *p2 = p1; //指向他人分配的内存
int x; //不是指针,直接被分配内存
int *p3 = &x; //指向x的内存空间。
raullpq 2003-03-26
  • 打赏
  • 举报
回复
感谢!!!
可是指针一定要动态分配内存嘛?不分配也可以编译成功的。为什么呢?有什么作用呢?
Agemo 2003-03-26
  • 打赏
  • 举报
回复
这段程序的错误应该是在运行时才会报异常错误,至于你那个编译器报的错误是因为你的编译设置不对。
TopCat 2003-03-26
  • 打赏
  • 举报
回复
见鬼,我copy下来的,也错了,应该是int main(),呵呵
TopCat 2003-03-26
  • 打赏
  • 举报
回复
int mian()
{
int *pi2 = new int(0); //这样才正确。
int ival = foobar( pi2 );
return 0;
}
TopCat 2003-03-26
  • 打赏
  • 举报
回复
你的指针没有分配空间啊。
raullpq 2003-03-26
  • 打赏
  • 举报
回复
啊,这个先不去说他:)
可是书上说这个程序有问题的,怎么样改正,我觉得没有什么问题啊。
langzi8818 2003-03-26
  • 打赏
  • 举报
回复
:)_
ww2003 2003-03-26
  • 打赏
  • 举报
回复
这个错误我也犯过
TopCat 2003-03-26
  • 打赏
  • 举报
回复
mian? main?

69,371

社区成员

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

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