Pregunta

Estoy usando 20 nodo en NS2, estoy tratando de acceder a las variables A (0) A (1) A (2) A (3) A (4) con el bucle, ¿cómo puedo hacerlo?

Aquí está mi código

for {set i 0} {$i < $val(nn)} {incr i} {
    set sink($i) [new Agent/LossMonitor]
    $ns attach-agent $n($i) $sink($i)

}

pero le da un error al nombre de la variable mala "sumidero (0)": Upvar no creará una variable escalar que se vea como un elemento de matriz

Declaro la variable de la siguiente manera

proc record {} {
  global sink(0) sink(1) sink(2) sink(3) sink(4) sink(5)
}
¿Fue útil?

Solución

Solo usa

global sink

(Global es solo un especial upvar caso)

variables que terminan con (...) son matrices (asociativas), no se recomienda usar números como clave, es mejor usar una lista, por ejemplo,

set mylist {}
# append some elements
lappend mylist "foo" "bar" "baz"
# get the 2nd element
puts [lindex $mylist 1]
# set the 3rd element to "Hello World"
lset mylist 2 "Hello World"
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top