主題:請教232I問題 共有45094人關注過本帖 |
---|
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 [只看該作者]
謝謝
|
|
單帖管理 | 引用 | 回復 |