如何将数据附加到 R/S 的块?

How to append data to block from R/S?

我正在尝试将数据从 Red/System 添加到 block

Red []

my-red-block: ["some text"] ; some already existen data in block

foo: routine [
    blk
]
[
    block/rs-append as red-block! blk as red-value! unicode/load-utf8 "new text" size? "new text"
]

foo my-red-block

print my-red-block

我决定把block传给routine在那里修改。

我遇到错误:

*** Runtime Error 1: access violation
*** at: 630EB4DFh

原因是 load-utf8 returns 引用外部字符串缓冲区的 node!,而不是 string! 值本身。

node!本质上是一个指针,不匹配高级Red值的结构;然而,由于它是一个指针,它可以被转换为另一种类型的指针,例如red-value! 或任何其他结构。当您尝试访问该格式错误的值槽时会发生崩溃。

原来的问题,应该回答一下。