因为这个局部变量是放在栈里的,而栈会在子程序结束后释放掉,所以你要先分配内存:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 文本 | 文本型 | | | 序号 | 文本型 | | | 姓名 | 文本型 | | | 昵称 | 文本型 | | |
序号 = “100”姓名 = “名字”昵称 = “name”文本 = 序号 + “|” + 姓名 + “|” + “|” + 昵称 启动线程 (&子程序1, 复制文本 (文本 ), )文本 = 指针到文本 (文本地址 )调试输出 (文本 )释放内存 (文本地址 )指针 = 申请内存 (取文本长度 (文本 ) + 1, 真)写到内存 (文本, 指针, )返回 (指针 )
另一种解决方案是,你把这些变量设置为全局变量,或者静态局部变量,因为它们不在栈里保存,所以不会出现问题:
窗口程序集名 | 保 留 | 保 留 | 备 注 | 窗口程序集_启动窗口 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 文本 | 文本型 | | | 序号 | 文本型 | | | 姓名 | 文本型 | | | 昵称 | 文本型 | | |
序号 = “100”姓名 = “名字”昵称 = “name”文本 = 序号 + “|” + 姓名 + “|” + “|” + 昵称 启动线程 (&子程序1, 取变量数据地址 (文本 ), )文本 = 指针到文本 (文本地址 )调试输出 (文本 )
可以看到,上面代码中传给线程的文本变量只是勾选了静态这个选项,就解决了这个问题。
|