我制作了一个程序并犯了一个小错误,就是在这个程序中声明一个结构数组,如node o[no];
而不是node *o=new node[no];
当我从执行这个错误的代码时得到的结果几乎没有什么不同。我编译并输入零,当最后两行被评论时,它给出了输出零。
shizuka@naruto:~$ g++ -std=c++11 hours.cpp
shizuka@naruto:~$ ./a.out
2
0shizuka@naruto:~$
当我取消注释这些行时,输出更改为:
shizuka@naruto:~$g++ -std=c++11 hours.cpp
shizuka@naruto:~$ ./a.out
2
2ABCABCshizuka@naruto:~$
然后我将cout>> count>>"\n";
放在外部循环中(在最后两行注释代码中)以查看发生了什么pastebin。
然后我取消注释最后两行并再次运行pastebin。输出是不同的。通过评论和取消注释最后两行代码,没有得到计数变量的影响。
基本上我想知道这种声明结构数组的错误方式如何影响存储在变量count
中的值。
node *o=new node[no];
代替node o[no];
该程序用于查找半径为r的圆内的整数坐标数,中心为0。
#include <iostream>
using namespace std;
struct node{
int x;int y;
};
int main()
{
int r;
cin >> r;
int no=2*r+1;
//node *o=new node[no];
node o[no];
int count=0;
cout << r<< endl;
for(int i=-r;i<=r;i=i+1)
{
for(int j=-r;j<=r;j=j+1)
{
int k=i*i+j*j;
if( k <= (r*r) )
{
o[count].x=i;
o[count++].y=j;
}
}
}
cout << count;
//for(int i=0;i<count;i++)
// cout<<"ABC";
return 0;
}