电子学习员 发表于 2013-4-1 20:13:19

关于main函数中定义局部数组后,调用strcpy的问题

本帖最后由 电子学习员 于 2013-4-1 22:40 编辑


今天调试门控器系统,在main函数中定义了一个20字节大小的数组,然后调用了strcpy,复制了一个字符串给这个数组。系统运行后,测试障碍物探测功能,好像门控器失控了,并且门控器还复位。我把数组定义成全局的就没事了,定义成局部的,测试几次就会出现失控问题。怎么去理解这个问题呢?各位高手怎么看?
char version;
strcopy(version, "VER");/*VER是软件版本号*/

电子学习员 发表于 2013-4-1 20:59:57

没人过来看看呀

wangguanfu 发表于 2013-4-1 21:01:56

拿分 走人

kanprin 发表于 2013-4-1 21:31:25

不好意思, 点了举报。
看到这中无厘头的标题就特不爽。
{:dizzy:}

Vmao 发表于 2013-4-1 21:36:13

不能再main中定义,要在
main()
{
int a
}

要改为
int a
main()
{

}

曾经因为这样出过问题,忘记是在stm8 还是在stc编程的时候

电子学习员 发表于 2013-4-1 21:47:01

Vmao 发表于 2013-4-1 21:36 static/image/common/back.gif
不能再main中定义,要在
main()
{


你还是没有讲到实质。。。不过谢谢

电子学习员 发表于 2013-4-1 21:47:31

wangguanfu 发表于 2013-4-1 21:01 static/image/common/back.gif
拿分 走人

您是什么意思。。。

电子学习员 发表于 2013-4-1 21:48:14

kanprin 发表于 2013-4-1 21:31 static/image/common/back.gif
不好意思, 点了举报。
看到这中无厘头的标题就特不爽。

题目很无厘头吗?

电子学习员 发表于 2013-4-1 21:48:59

等高手来

Vmao 发表于 2013-4-1 21:49:04

生成的汇编你跟踪下就清楚了,你用什么mcu

kebaojun305 发表于 2013-4-1 21:52:15

本帖最后由 kebaojun305 于 2013-4-1 21:53 编辑

电子学习员 发表于 2013-4-1 21:48 static/image/common/back.gif
题目很无厘头吗?

标题太简单的 不能说明帖子的主要内容   小心封ID你发帖子时没有看到红色的字吗    看看论坛规则http://www.amobbs.com/thread-5511230-1-1.html

kanprin 发表于 2013-4-1 22:34:40

算了,告诉你吧, 不过你还是把标题改个明确些的。

用局部数组,使用的是栈空间,其它函数的调用会跟你这个数组公用内存空间。
所以,如果使用局部数据,需要使用memcpy,而不是strcpy
而使用全局数组时,这个数据组就由你的程序显式调用,系统不会跟你抢。
所以你用strcpy就不会有问题。

电子学习员 发表于 2013-4-1 22:38:26

RE:关于main函数定义局部数组后,调用strcpy的问题

kanprin 发表于 2013-4-1 22:34 static/image/common/back.gif
算了,告诉你吧, 不过你还是把标题改个明确些的。

用局部数组,使用的是栈空间,其它函数的调用会跟你这 ...

   实在抱歉,我第一次发帖,不知道咱们这儿规则,以后改,

电子学习员 发表于 2013-4-1 22:57:11

kanprin 发表于 2013-4-1 22:34 static/image/common/back.gif
算了,告诉你吧, 不过你还是把标题改个明确些的。

用局部数组,使用的是栈空间,其它函数的调用会跟你这 ...

我这个是裸机程序,没有什么操作系统,没怎么明白您说的

littlemouse11 发表于 2013-4-1 23:24:38

没见过strcopy这个函数。

电子学习员 发表于 2013-4-1 23:29:09

littlemouse11 发表于 2013-4-1 23:24 static/image/common/back.gif
没见过strcopy这个函数。

抱歉,打错了。。。

chinabn 发表于 2013-4-2 08:58:03

kanprin 发表于 2013-4-1 22:34 static/image/common/back.gif
算了,告诉你吧, 不过你还是把标题改个明确些的。

用局部数组,使用的是栈空间,其它函数的调用会跟你这 ...

?????      

yuyu87 发表于 2013-4-2 09:19:52

这个函数简单,自己写效率还高些,不就是一个循环,然后搬移

电子学习员 发表于 2013-4-2 12:23:37

yuyu87 发表于 2013-4-2 09:19 static/image/common/back.gif
这个函数简单,自己写效率还高些,不就是一个循环,然后搬移

我知道这个函数怎么写,现在的情况是什么会出现问题
页: [1]
查看完整版本: 关于main函数中定义局部数组后,调用strcpy的问题