智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 2063|回复: 15
打印 上一主题 下一主题

[咨询] 为什么取中线过程中程序老死在里面

  [复制链接]

20

主题

308

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2157
QQ
威望
1132
贡献
547
兑换币
695
注册时间
2012-11-27
在线时间
239 小时
跳转到指定楼层
1#
发表于 2013-4-4 10:51:25 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
为什么取中线过程中程序老死在里面
数组定义问题??

11

主题

75

帖子

0

精华

高级会员

Rank: 4

积分
681

活跃会员奖章优秀会员奖章

威望
348
贡献
195
兑换币
205
注册时间
2013-1-21
在线时间
69 小时
毕业学校
孝感学院新技术学院
16#
发表于 2013-6-4 23:50:31 | 只看该作者
我也出现这样的问题   楼主解决了没?
回复 支持 反对

使用道具 举报

20

主题

308

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2157
QQ
威望
1132
贡献
547
兑换币
695
注册时间
2012-11-27
在线时间
239 小时
15#
 楼主| 发表于 2013-4-5 21:47:35 | 只看该作者
oneJN 发表于 2013-4-5 05:32
多用用单步执行,慢慢的你会发现哪儿出问题的。

谢谢
回复 支持 反对

使用道具 举报

4

主题

109

帖子

0

精华

高级会员

Rank: 4

积分
971
威望
465
贡献
262
兑换币
288
注册时间
2012-11-3
在线时间
122 小时
14#
发表于 2013-4-5 05:32:41 | 只看该作者
多用用单步执行,慢慢的你会发现哪儿出问题的。
回复 支持 反对

使用道具 举报

0

主题

25

帖子

0

精华

高级会员

Rank: 4

积分
865
威望
418
贡献
261
兑换币
278
注册时间
2012-11-22
在线时间
93 小时
13#
发表于 2013-4-4 23:53:49 | 只看该作者
cambuff0[j1-4],这里明显错了,  for(j1=35;j1>1;j1--),当j1=3时数组就已经越界了
回复 支持 反对

使用道具 举报

11

主题

252

帖子

0

精华

高级会员

Rank: 4

积分
852
威望
448
贡献
234
兑换币
220
注册时间
2013-2-18
在线时间
85 小时
12#
发表于 2013-4-4 20:54:18 | 只看该作者
是ccd吗?
回复 支持 反对

使用道具 举报

10

主题

62

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1082
威望
591
贡献
303
兑换币
235
注册时间
2012-10-1
在线时间
94 小时
毕业学校
武汉大学
11#
发表于 2013-4-4 16:19:39 | 只看该作者
  if((cambuff0[j1]-cambuff0[j1-4]>250)&&(cambuff0[j1]-cambuff0[j1-3]>250))
当你的j1-4<0的时候,这个不会出问题?
回复 支持 反对

使用道具 举报

1

主题

2067

帖子

0

精华

常驻嘉宾

Rank: 8Rank: 8

积分
5124

论坛元老奖章在线王奖章活跃会员奖章优秀会员奖章

威望
2752
贡献
898
兑换币
59
注册时间
2012-12-8
在线时间
737 小时
10#
发表于 2013-4-4 15:09:21 | 只看该作者

RE: 为什么取中线过程中程序老死在里面

林的0922 发表于 2013-4-4 13:48
void line_center()
{
int line_left[40];

看到了
回复 支持 反对

使用道具 举报

20

主题

308

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2157
QQ
威望
1132
贡献
547
兑换币
695
注册时间
2012-11-27
在线时间
239 小时
9#
 楼主| 发表于 2013-4-4 13:48:53 | 只看该作者
exiao 发表于 2013-4-4 12:36
有可能啊

void line_center()
{
int line_left[40];
int line_rigt[40];
int center[40];
//unsigned char cambuff[40][80];
unsigned int i,j1,j2,m,n,l;
m=0;
n=0;
  for(i=0;i<40;i++){

  for(j1=35;j1>1;j1--)
   {

  if((cambuff0[j1]-cambuff0[j1-4]>250)&&(cambuff0[j1]-cambuff0[j1-3]>250))
    line_left[m]=j1;
   }
  }

    for(i=0;i<40;i++)
    for(j2=45;j2<79;j2++)
    {
      if((cambuff0[j2]-cambuff0[j2+4]>250)&&(cambuff0[j2]-cambuff0[j2+5]>250))
      line_rigt[n]=j2;
    }

for(l=0;l<=40;l++)
center[l]=(line_left[l]+line_rigt[l])/2;
center[l]=1;

}



回复 支持 反对

使用道具 举报

20

主题

308

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2157
QQ
威望
1132
贡献
547
兑换币
695
注册时间
2012-11-27
在线时间
239 小时
8#
 楼主| 发表于 2013-4-4 13:48:34 | 只看该作者
zncsudo 发表于 2013-4-4 13:45
有没有数组越界?之前我也出过这种问题

我感觉就是数组 的问题  可是找不出错
void line_center()
{
int line_left[40];
int line_rigt[40];
int center[40];
//unsigned char cambuff[40][80];
unsigned int i,j1,j2,m,n,l;
m=0;
n=0;
  for(i=0;i<40;i++){

  for(j1=35;j1>1;j1--)
   {

  if((cambuff0[j1]-cambuff0[j1-4]>250)&&(cambuff0[j1]-cambuff0[j1-3]>250))
    line_left[m]=j1;
   }
  }

    for(i=0;i<40;i++)
    for(j2=45;j2<79;j2++)
    {
      if((cambuff0[j2]-cambuff0[j2+4]>250)&&(cambuff0[j2]-cambuff0[j2+5]>250))
      line_rigt[n]=j2;
    }

for(l=0;l<=40;l++)
center[l]=(line_left[l]+line_rigt[l])/2;
center[l]=1;

}



回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-9-24 21:21 , Processed in 0.048866 second(s), 30 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表