求指教~~~ 求大神帮助~~ 。。初始化问题~~

duinijiangnihao 2013-04-19 04:21:30
用的是C++。。。

int a[222];
在main里面初始化 memset(a,0,sizeof(a));
报错。。
error: invalid conversion from `int' to `void*'
error: initializing argument 1 of `void* memset(void*, int, size_t)'
我有#include<csting>的。。。

然后。。更心酸的是。。。
我把 memset(a,0,sizeof(a));改成
for(int i=1; i<222; i++) a[i] = 0;
又错。。。。
error: invalid types `int[int]' for array subscript

感觉不会再爱了。。 求指教~~~求帮助~~~~
...全文
250 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
duinijiangnihao 2013-04-19
  • 打赏
  • 举报
回复
引用 8 楼 lfm13720 的回复:
果然没错,你有个全局变量 int a[MAX];又有个局部变量int a;
问题已解决。。 谢谢·~~
duinijiangnihao 2013-04-19
  • 打赏
  • 举报
回复
引用 6 楼 liao05050075 的回复:
你全局有个a数组,main中有个int a。重名了 memset((void*)&a,0,sizeof(a)); 这个虽然编译通过了,但结果。。
嗯嗯。。是我忽略了。。~~
lfm13720 2013-04-19
  • 打赏
  • 举报
回复
果然没错,你有个全局变量 int a[MAX];又有个局部变量int a;
lfm13720 2013-04-19
  • 打赏
  • 举报
回复
没有问题应该是假象,我猜是变量名冲突了
liao05050075 2013-04-19
  • 打赏
  • 举报
回复
你全局有个a数组,main中有个int a。重名了 memset((void*)&a,0,sizeof(a)); 这个虽然编译通过了,但结果。。
duinijiangnihao 2013-04-19
  • 打赏
  • 举报
回复
引用 1 楼 liao05050075 的回复:
能把代码贴全么?
代码。。 代码。。。 #include<iostream> #include<cstdio> #include<cstring> #include<string.h> using namespace std; const int MAX = 222; int ori[MAX][MAX]; int a[MAX]={0}; int N,E,K; void dfs(int x, int y) { if(K) return; a[x] = y; for(int i=0; i<=N; i++) { if(ori[x][i]) { ori[x][i] = 0; if(a[i] == 0) { if(y==1) dfs(i,2); if(y==2) dfs(i,1); } if(a[i] == y) { K = 1; break; } } } return; } int main() { int a,b; while(cin>>N>>E && N) { K = 0, a = 0, b = 0; memset(ori,0,sizeof(ori)); //for(int i=0; i<MAX; i++) // a[i] = 0; memset((void*)&a,0,sizeof(a)); for(int i=1; i<=E; i++) { scanf("%d%d",&a,&b); ori[a][b] = 1; ori[b][a] = 1; } dfs(0,1); if(K) cout<<"NOT BICOLORABLE."<<endl; else cout<<"BICOLORABLE."<<endl; } return 0; }
duinijiangnihao 2013-04-19
  • 打赏
  • 举报
回复
引用 3 楼 flyound 的回复:
memset(a,0,sizeof(a)) 改为memset((void *)&a,0,sizeof(a))
好了。。 初始化没问题了。。 但我还是想知道为什么这次这么用就出问题了呢。。。
flyound 2013-04-19
  • 打赏
  • 举报
回复
memset(a,0,sizeof(a)) 改为memset((void *)&a,0,sizeof(a))
lilianjie001 2013-04-19
  • 打赏
  • 举报
回复
如果只是 int a[222]; memset(a,0,sizeof(a)); 应该是不会出错了,也许是你环境的问题。
liao05050075 2013-04-19
  • 打赏
  • 举报
回复
能把代码贴全么?

69,371

社区成员

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

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