Sadless is a good man, but you can not see it through.

2008年7月25日 星期五

TDMA ~ terminate called after throwing an instance of 'std::bad_alloc

When I run TDMA MAC, the memory usage is always increasing with time.

In the end, it will occur this

"terminate called after throwing an instance of 'std::bad_alloc"

Someone meet this issue either.



After Panos debugged it, this is the way to solve it.

original:
free(pkt);

after:
Packet::free(pkt);



2008年7月23日 星期三

proc

proc 裡面要用到前面的 array 時

要 global array
不要只 global array(0)

ex:

proc record {} {
global node_
set x [$node_(1) set Y_]
set panos_record [open panos.rec a]
puts $panos_record $x
close $panos_record
}




Tcl語法

常用的Tcl語法記錄與此,以後好備查:

1.宣告變數:
set A 100

2.列印變數的值:
puts $A

3.Append變數:
set a {QA Engineer: }
set b {Lawrence Chiu}
puts $a
puts $b
append a $b
puts $a

4.Array:
#Set value to array
for {set i 5} {$i >= 0} {incr i -1} {
set myarray($i) $i
}
#Print array value
for {set i 0} {$i <= 5} {incr i +1} { puts "myarray($i)=$myarray($i)" }

5.將指令結果存於變數內:
set var [exec ifconfig]
puts $var
set var2 [exec ifconfig | grep "inet\ addr" | grep -v 127.0.0.1]
puts $var2

6.eval & subst:
set age 28
set str {I'm $age years old}
set cmd {puts "$str"}
eval $cmd
eval [subst $cmd]

7.foreach:
set SUM 0
foreach test {1 2 3 4 5} {
puts "$test"
set SUM [expr $SUM + $test]
}
puts "SUM=$SUM"

8.if:
set A 100
if {$A==101} {
puts "A=101"
} else { puts "A=100" }

9.開關檔:
set ls [exec ls]
set file [open file w]
puts $file $ls
close $file

10.positional應用:
set count [llength $argv]
puts $count
for { set i 0 } { $i <= [expr $count-1] } { incr i +1} { puts [lindex $argv $i] } 11.positional應用, foreach:
foreach a $argv {
puts $a
}

11.proc:
#functin f1
proc f1 {a b} {
return [expr $a + $b]
}

#Main program
set A 100
set B 150

set sum [f1 $A $B]
puts "A=$A"
puts "B=$B"
puts "A+B=$sum"

12. RE:
set var1 {abcde}
set var2 {b1234}
set var3 {aabcd}

puts "var1=$var1"
puts "var2=$var2"
puts "var3=$var3"
puts "\r"

puts "Which variable have a character?"
if {[regexp {a} $var1]} {
puts "var1 have a character"
} else { puts "var1 haven't a character" }

if {[regexp {a} $var2]} {
puts "var2 have a character"
} else { puts "var2 haven't a character" }

if {[regexp {a} $var3]} {
puts "var3 have a character"
} else { puts "var3 haven't a character" }
puts "\r"
puts "Which variable include number?"

if {[regexp {[0-9]} $var1]} {
puts "var1 have number"
} else { puts "var1 haven't a number" }

if {[regexp {[0-9]} $var2]} {
puts "var2 have number"
} else { puts "var2 haven't number" }

if {[regexp {[0-9]} $var3]} {
puts "var3 have number"
} else { puts "var3 haven't number" }

13.string:
set A "hello world!"
puts $A
puts [string length $A]
puts [string index $A 4]
puts [string range $A 6 9]
puts [string range $A 6 end]
puts [string toupper $A]
puts [string tolower $A]

14.switch:
set A yes
switch $A {
yes { puts "yes"}
no { puts "no" }
YES { puts "YES" }
default { puts "Not match!" }
}

15.while
set SUM 0
set i 1
while { $i <= 100} {
set SUM [expr $SUM + $i]
incr i 1
}
puts "SUM=$SUM"

Tcl online man page: http://www.tcl.tk/man/



2008年7月4日 星期五

找到下齒尖

唱歌的時候把共振的位置放在下門牙尖, 可以有穩定的聲音


C++:動態配置陣列 ~(感謝 牛皮線條筆記 分享)

ref: http://tw.myblog.yahoo.com/pp-tea/article?mid=22


【一維陣列】

在C++中,配置與釋放一般陣列的語法如下:

//配置
int *test = new int[5];
//釋放
delete [] test;





【多維陣列】

由於動態配置的資料型態必須是一維的,所以若要配置多維陣列時,則需要用以下方法來進行配置。

EX:要宣告一個 int test[3][4][5] 的陣列。

int ***test;
test = new int**[3];
//配置
for(int i=0; i<3; i++)
{
test[i] = new int*[4];
for(int j=0; j<4; j++)
{
test[i][j] = new int[5];
}
}

//釋放
for(int i=0; i<3; i++)
{
for(int j=0; j<4; j++)
{
delete [] test[i][j];
}
delete [] test[i];
}
delete [] test;



簡單說,要動態配置多維陣列,就必須先由第一維開始,配置存放下一維陣列之指標的指標陣列,然後再各自往下配置,以此類推,到了最後一維則直接配置。刪除的方法類似,反向操作即可。



2008年6月26日 星期四

Sadless 大事紀

2008/06/24
JC Quit, WIRE Lab is going to collapse.

2008/06/14
老天說:誰叫你用腳去推推草機的ㄚ!(原來右腳中趾骨斷了是這種感覺...就是很遠的痛...)


2008年6月20日 星期五

火柴天堂~歌詞

作詞:熊天平/趙俊傑 作曲:熊天平

走在寒冷下雪的夜空 賣著火柴溫飽我的夢
一步步冰凍 一步步寂寞 人情寒冷冰凍我的手
一包火柴燃燒我的心 寒冷夜裡擋不住前行
風刺我的臉 雪割我的口 拖著腳步還能走多久

有誰來買我的火柴 有誰將一根根希望全部點燃
有誰來買我的孤單 有誰來實現我想家的呼喚

每次 點燃火柴 微微光芒 看到希望
看到夢想 看見天上的媽媽說話
她說 你要勇敢 你要堅強 不要害怕
不要慌張 讓你從此不必再流浪
媽媽牽著你的手回家 睡在溫暖花開的天堂



愛情多惱河~歌詞

作詞:熊天平/許常德 作曲:熊天平

愛讓誰落淚 哭成流水 不知去向
往事在每一夜 陪傷心人入睡

愛怎會疲憊 你一去不回
你的起點 也許是我永遠 到不了的終點 讓我飄飄蕩蕩

我不停的追逐 那黑色的幸福 就像是矇上眼睛 追逐你的路
我揚起萬千風帆 告訴你我好孤單 在幽幽藍藍多煩惱多惱河

我企圖欺騙自己 愛情沒有煩惱
只是你沒有目標 讓我迷失多惱河




2008年6月19日 星期四

gdb and ns2

gdb ns

run XXX.tcl

bt

===============================================
可以看到segmentation fault停在哪裡!


2008年5月27日 星期二

MSNTBUP.exe

reference http://zhidao.baidu.com/question/30683898.html?fr=qrl

MSNTBUP.exe是必爾該死微軟的Live search toolbar自動更新檢查程式, 不過有可能該程式會被木馬或病毒給感染.

禁止他運行:
開始-運行-gpedit.msc,打開組策略,用戶配置下面,展開管理模版,雙擊系統文件夾,在右面的窗口中,有一項"不要運行指定的windows應用程序",雙擊,然後選擇-已啟用-顯示,把要禁止運行的程序添進去,比如MSNTBUP.exe