主题:请教232I问题 共有41608人关注过本帖 |
---|
zjz |
1楼 |
请教232I问题 Post By:2004-6-8 10:59:00 [只看该作者]
最近使用232I开发,今天出现了一个问题,FLASH的空间越来越小,但存在里面的程序还可以用!提示剩余空间是0,请问是不是FLASH坏了!还是别的原因?
|
|
单帖管理 | 引用 | 回复 |
leeleen |
2楼 |
Post By:2004-6-8 11:48:00 [只看该作者]
FLASH没有损坏,估计您在开发过程中向FLASH下载了一些文件,有些是可以删除的,您可以用TDRF命令将那些不要的文件删除,将空间释放出来。
:) |
|
单帖管理 | 引用 | 回复 |
zjz |
3楼 |
Post By:2004-6-8 14:55:00 [只看该作者]
我利用TDRF D 命令查看时,已经看不到任何别的文件了,换了个板子,问题依旧!!!
|
|
单帖管理 | 引用 | 回复 |
zjz |
4楼 |
Post By:2004-6-8 14:59:00 [只看该作者]
经常出现以下的错误:"Invalid media type writing drive A?"
"erro download" |
|
单帖管理 | 引用 | 回复 |
x10 |
5楼 |
Post By:2004-6-8 17:19:00 [只看该作者]
已看了你的代码,是典型的指针操作问题导致系统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; } |
|
单帖管理 | 引用 | 回复 |
zjz |
6楼 |
Post By:2004-6-9 18:21:00 [只看该作者]
已收到谢谢!!
|
|
单帖管理 | 引用 | 回复 |
zjz |
7楼 |
Post By:2004-6-9 18:26:00 [只看该作者]
int func( )
{    int   i1;    char* str;    str=(char*)malloc(strlen(str));    ....    i1 = 100;    sprintf( str, "value=%d\n", i1 );    ....    return 0; } 改成这样可以吗? |
|
单帖管理 | 引用 | 回复 |
zhl |
8楼 |
Post By:2004-6-9 19:14:00 [只看该作者]
肯定不行,str指针都没有分配,怎么能用strlen(str)。动态分配空间可以用malloc或 new,但需注意的是,在buf使用完后须用free 或delete释放空间。
|
|
单帖管理 | 引用 | 回复 |
tanzf |
9楼 |
Post By:2004-6-10 7:15:00 [只看该作者]
无语了。。。
|
|
单帖管理 | 引用 | 回复 |
x10 |
10楼 |
Post By:2004-6-10 8:24:00 [只看该作者]
在C中,无论是局部变量数组还是对指针的动态分配,都需要指定具体的大小。
|
|
单帖管理 | 引用 | 回复 |
zjz |
11楼 |
Post By:2004-6-10 10:41:00 [只看该作者]
谢谢
|
|
单帖管理 | 引用 | 回复 |