回复帖子:(zjz(0.0.*.*))经常出现以下的错误:"Invalid&...

用户名:   *您没有注册?
密码:   *忘记论坛密码?    标题采用“回复:XXX....”
验证码 点击获取验证码
主题标题:  *不得超过 200 个汉字
当前心情
上一页 发帖表情 下一页
内容
  

主题最新回顾(发布时间:2004-6-10 10:41:00)
--  作者:zjz(0.0.*.*)
--  
谢谢

主题最新回顾(发布时间:2004-6-10 8:24:00)
--  作者:x10(0.0.*.*)
--  
在C中,无论是局部变量数组还是对指针的动态分配,都需要指定具体的大小。

主题最新回顾(发布时间:2004-6-10 7:15:00)
--  作者:tanzf(0.0.*.*)
--  
无语了。。。

主题最新回顾(发布时间:2004-6-9 19:14:00)
--  作者:zhl(0.0.*.*)
--  
肯定不行,str指针都没有分配,怎么能用strlen(str)。动态分配空间可以用malloc或 new,但需注意的是,在buf使用完后须用free 或delete释放空间。

主题最新回顾(发布时间:2004-6-9 18:26:00)
--  作者:zjz(0.0.*.*)
--  
int func( )
{
   int   i1;
   char* str;
   str=(char*)malloc(strlen(str));
   ....
   i1 = 100;
   sprintf( str, "value=%d\n", i1 );
   ....
   return 0;
}
改成这样可以吗?

主题最新回顾(发布时间:2004-6-9 18:21:00)
--  作者:zjz(0.0.*.*)
--  
已收到谢谢!!

主题最新回顾(发布时间:2004-6-8 17:19:00)
--  作者:x10(0.0.*.*)
--  
已看了你的代码,是典型的指针操作问题导致系统crush。给你回的email中具体说明了bug所在。请检查你的邮箱,谢谢!

在C语言的函数中,定义的局部变量在放在堆栈之中的,如果局部变量是指针,堆栈中的随机数就变成了该指针所指向的地址,它可以是任意地址,包括系统区域,一旦对该指针进行写操作,系统将被破坏,最后导致系统崩溃。典型的bug:

int func( )
{
   int   i1;
   char* str;

   ....
   i1 = 100;
   sprintf( str, "value=%d\n", i1 );
   ....
   return 0;
}

正确的
int func( )
{
   int   i1;
   char  str[20];

   ....
   i1 = 100;
   sprintf( str, "value=%d\n", i1 );
   ....
   return 0;
}

主题最新回顾(发布时间:2004-6-8 14:59:00)
--  作者:zjz(0.0.*.*)
--  
经常出现以下的错误:"Invalid media type writing drive A?"
"erro download"

主题最新回顾(发布时间:2004-6-8 14:55:00)
--  作者:zjz(0.0.*.*)
--  
我利用TDRF D 命令查看时,已经看不到任何别的文件了,换了个板子,问题依旧!!!

主题最新回顾(发布时间:2004-6-8 11:48:00)
--  作者:leeleen(0.0.*.*)
--  
FLASH没有损坏,估计您在开发过程中向FLASH下载了一些文件,有些是可以删除的,您可以用TDRF命令将那些不要的文件删除,将空间释放出来。
:)