指针使用的 C++ 入门级程序调试

nbu04william 2014-05-06 09:39:25
#include <iostream>

using namespace std;

int main() {
cout << "!!!Hello World----!!!" << endl; // prints !!!Hello World!!!

int k,l;
int mat[3]={4,2,3}; // no bug
int *m; // 这是错的,而且运行时会弹出如下对话框。
// int m[3]; 是对的,运行成功。两者有区别吗?
for(k=0;k<3;k++){*(m+k)=mat[k];}

for(k=0;k<3;k++){
for(l=0;l<3;l++){
cout << m[k]+l<< "(+" << l << ")";
}
cout << ":" << k+1 <<endl;
}

return 0;
}

怎么会跳出这样的对话框?

...全文
131 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
f_liu 2014-05-06
  • 打赏
  • 举报
回复
又是野指针问题……
ithiker 2014-05-06
  • 打赏
  • 举报
回复
引用 1 楼 whustyle 的回复:
int *m;
没有初始化,属于不可预知的指针 写成这样看看
int *m;
m = (int *)malloc(3*sizeof(int));
顶,楼主用完注意delete m;
笑梦码侬生 2014-05-06
  • 打赏
  • 举报
回复
你的指针没有分配地址,你就用来操作。
_Cogito_ 2014-05-06
  • 打赏
  • 举报
回复
int *m;
没有初始化,属于不可预知的指针 写成这样看看
int *m;
m = (int *)malloc(3*sizeof(int));

65,209

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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