首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

将变量数组传递给另一个sub以填充它们会返回变量为空

的情况可能是由于以下几个原因:

  1. 参数传递错误:在将变量数组传递给另一个sub时,可能出现了参数传递错误,导致传递的变量数组无法正确填充。这可能是由于传递的参数类型不匹配、传递的参数顺序错误或者传递的参数个数不正确等原因导致的。
  2. 变量作用域问题:在将变量数组传递给另一个sub时,可能存在变量作用域的问题。如果另一个sub中定义了与传递的变量数组相同名称的变量,并且在该sub中对该变量进行了修改,那么原始的变量数组可能会被覆盖或者修改,导致返回的变量为空。
  3. 代码逻辑错误:在另一个sub中可能存在代码逻辑错误,导致无法正确填充传递的变量数组。这可能是由于对传递的变量数组进行了错误的操作、没有正确处理传递的变量数组或者存在其他逻辑错误等原因导致的。

为了解决这个问题,可以采取以下几个步骤:

  1. 检查参数传递:确保传递的参数类型、顺序和个数与另一个sub的定义相匹配。可以逐个检查参数是否正确传递,并且确认传递的参数是否满足另一个sub的要求。
  2. 检查变量作用域:确保在另一个sub中没有定义与传递的变量数组相同名称的变量,或者在使用传递的变量数组之前,先将其它同名变量保存起来,以免被覆盖或修改。
  3. 检查代码逻辑:仔细检查另一个sub中的代码逻辑,确保对传递的变量数组进行了正确的操作和处理。可以使用调试工具或打印日志来跟踪代码执行过程,以便找出问题所在。

如果以上步骤都没有解决问题,可以考虑使用其他方法来传递和填充变量数组,例如使用全局变量、返回值或者引用传递等方式。此外,还可以参考腾讯云的云计算产品,如云函数 SCF(https://cloud.tencent.com/product/scf)或容器服务 TKE(https://cloud.tencent.com/product/tke)等,来构建和管理云上的应用程序。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【JS】411- JS 进阶系列问题(47问)

因为当我们打印 name 变量时还没有执行到定义变量的位置,因此变量的值保持 undefined。 通过 let 和 const 关键字声明的变量提升,但是和 var 不同,它们不会被初始化。...你可以复制对象中的键值对,然后把它们加到另一个对象里去。在本例中,我们复制了user对象键值对,然后把它们加入到admin对象中。...函数返回的值会成为这个属性的值,最终体现在转化后的JSON字符串中(译者注:Chrome下,经过实验,如果所有属性均返回同一个值的时候有异常,直接返回值作为结果输出而不会输出JSON字符串),而如果返回...第二次,cache对象包含10的返回值。if语句 num in cache 返回true,From cache! 20被打印。 第三次,我们5 * 2(值10)传递给函数。...通过hasName设置name,可以hasName设置等于传递给getName函数的值,而不是布尔值true。 new Boolean(true)返回一个对象包装器,而不是布尔值本身。

2.3K50

C语言回调函数,提升C技巧必备

函数指针的定义方式: 函数返回值类型 (* 指针变量名) (函数参数列表); “函数返回值类型”表示该指针变量可以指向具有什么返回值类型的函数;“函数参数列表”表示该指针变量可以指向具有什么参数列表的函数...int) { ... } 在这里, func5 (int, int, float) 参数,其返回类型 void (\*)(int, int) 。...)(int, int, float); p_func_array func_array_2[5]; 上面两种方法都可以用来定义函数指针数组它们定义了一个元素个数5,类型是 * void (\*)(...如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。...如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。

1.1K10
  • 深析C语言的灵魂 -- 指针

    两段有趣的代码 第一段代码: (*(void (*)())0)(); (void (*)())0:首先,0前面括号中的 void (*)() 是一个函数指针类型,该指针指向的函数的参数返回值也...,返回值也的函数的地址。...(*(void (*)())0)():现在我们知道了(void (*)())0 代表的是0地址处的函数,且该函数的参数,所以我们现在调用该函数;首先用*对函数(不加*也行)解引用,然后传参(参数...int,返回值是 void; 所以实际上上面这段代码是一个函数声明,声明的函数的第一个参数是整形,第二个参数是参数 int,返回 void 的函数指针,返回值也是参数 int,返回 void...int y) { return x / y; } int main() { int (*parr[4])(int, int) = { Add, Sub, Mul, Div }; //函数地址放入数组

    48100

    5.10 汇编语言:汇编过程与结构

    在这里,我们定义了两个符号,将它们与ebp寄存器进行偏移访问这些局部变量。var1_local的地址[ebp-8],var2_local的地址[ebp-4]。...在使用堆栈参和创建局部变量时,需要谨慎考虑栈指针的位置,并确保遵守调用约定确保正确地传递参数和返回值。...的数组,将其中的元素填充*,然后弹出两个元素,并将它们输出到控制台。...然后,我们使用sub esp, 32指令开辟一个长度30的数组MyString。我们MyString数组的基地址存储在[ebp - 30]的位置。...另一个数据类型是UNION,它也是一种复合数据类型,用于多个不同类型的变量叠加在同一内存位置上。使用UNION时,程序内存中的数据只占用所有成员变量中最大的数据类型变量的大小。

    21920

    5.5 汇编语言:函数调用约定

    mov eax,0CCCCCCCCh ; 填充四字节数据 rep stosd ; 当前函数局部空间填充初始值...这种调用方式规定函数调用者在参数压入栈中后,再将控制权转移到被调用函数,被调用函数通过栈顶指针ESP来访问这些参数。函数返回时,由调用者程序负责堆栈平衡清除。...CDECL调用约定的特点是简单易用,但相比于其他调用约定,由于栈平衡的操作需要在函数返回后再进行,因此在一些情况下可能带来一些性能上的开销。...在程序编译时编译器自动我们计算ESP基地址与传入变量的参数偏移,使用esp寻址后,不必每次进入函数后都调整栈底ebp,从而减少了ebp的使用,因此可以有效提升程序执行效率。...main PROC push 5 push 3 push 4 push 1 call function int 3 main ENDPEND main5.5 使用数组指针值这里我们一维数组

    32620

    5.10 汇编语言:汇编过程与结构

    在这里,我们定义了两个符号,将它们与ebp寄存器进行偏移访问这些局部变量。var1_local的地址[ebp-8],var2_local的地址[ebp-4]。...现在,栈顶指针(ESP)下移恢复上面分配的8个字节的空间,最后通过ret 8返回到调用函数。在使用堆栈参和创建局部变量时,需要谨慎考虑栈指针的位置,并确保遵守调用约定确保正确地传递参数和返回值。...的数组,将其中的元素填充*,然后弹出两个元素,并将它们输出到控制台。...然后,我们使用sub esp, 32指令开辟一个长度30的数组MyString。我们MyString数组的基地址存储在[ebp - 30]的位置。...另一个数据类型是UNION,它也是一种复合数据类型,用于多个不同类型的变量叠加在同一内存位置上。使用UNION时,程序内存中的数据只占用所有成员变量中最大的数据类型变量的大小。

    44120

    5.5 汇编语言:函数调用约定

    mov eax,0CCCCCCCCh ; 填充四字节数据 rep stosd ; 当前函数局部空间填充初始值...这种调用方式规定函数调用者在参数压入栈中后,再将控制权转移到被调用函数,被调用函数通过栈顶指针ESP来访问这些参数。函数返回时,由调用者程序负责堆栈平衡清除。...CDECL调用约定的特点是简单易用,但相比于其他调用约定,由于栈平衡的操作需要在函数返回后再进行,因此在一些情况下可能带来一些性能上的开销。...在程序编译时编译器自动我们计算ESP基地址与传入变量的参数偏移,使用esp寻址后,不必每次进入函数后都调整栈底ebp,从而减少了ebp的使用,因此可以有效提升程序执行效率。...这里我们一维数组例,二维数组的传递其实和一维数组是相通的,只不过在寻址方式上要使用二维数组的寻址公式,此外传递数组其实本质上就是传递指针,所以数组与指针的传递方式也是相通的。

    26620

    过程(四)地址和

    在VBA中实参可以通过两种方式数据传递给形参,分别为地址和值,都是在创建通用过程定义变量时。 由于概念生硬不易理解,还是先说示例,再总结介绍。...下面先看示例: 首先在模块中创建jisuan过程,ByRef a As Integer按地址实参传递给形参。 创建diaoyong过程,先定义了整型变量b,给b赋初始值2。...这是因为在调用过程时,变量b做实参按地址传递给变量a,变量b和变量a指向同一个内存单元,一起变化。...注 意 点 1、前面说过sub过程通常不能返回运算结果的,如果需要返回值时,是可以利用ByRef方式来定义形参,这样就可以子过程的运算数据返回调用程序中。...在jisuan过程,ByVal a As Integer按值实参传递给形参。 在diaoyong过程,先定义了整型变量b,给b赋初始值2。

    4.9K30

    awk高级玩法

    比较后返回l 真,0 假。比较不同长度的字符串,且其中一个字符串另一个的初始子字符串时,较短的定义小于较长的那个,因此,“A ”< “AA ”的值真。 awk 并无特殊的字符串接续运算符。...一般使用上以及建议用法是: 养成习惯,局部变量全设为小写、全局变量第一个字母大写,而内建变量则全是大写。 7....数组变量 awk 允许在数组名称之后,以方括号任意数字或字符串表达式 括起来作为索引。...用户自定义函数 函数定义如下: function name(argl, }rg2, …,argn { statements } 指定的参数在函数体中用来当作局部变量它们隐藏任何相同名称的全局性变量。...换句话说,标量值(by vaule ) ,而数组则为引用(by reference): 这对C 语言也是这样。

    1.4K20

    类和对象(万字总结!深度总结了类的相关知识)(上)

    这意味着类中的每个成员变量的地址可能需要对齐到某个字节边界上,编译器可能会在变量之间插入“填充字节”满足对齐要求。...7.3 类的大小 在C++中,即使类中没有任何成员变量类的大小也不是 0。为了确保每个对象都有唯一的地址,C++规定类的大小 1 字节。...对齐和填充:编译器根据系统架构进行对齐,可能插入填充字节,使类的实际大小比预期的成员变量大小要大。 静态成员:静态成员变量不影响类的对象大小。...由于对齐规则,类的实际大小可能比简单地各成员的大小相加要大。 总结: 类的大小由其成员变量的大小和编译器对齐要求决定,成员函数不影响类的大小。 虚函数表指针(vptr)和对齐填充影响类的大小。...返回对象的引用:可以使用this指针在成员函数中返回当前对象的引用,实现链式调用(如在操作符重载时)。

    8210

    过程(三)形参与实参结合

    上节介绍了Sub过程的定义和调用,后面介绍过程的传递参数部分。包括实参与形参的结合,以及地址和值的差异。...Call jisuan(i:=2, k:=4) ,如果提供的值和对应的参数位置是一致的,那也可以写成简略的形式Call jisuan(2,4),如下图所示: 第二种方式虽然可以简化代码,但容易出错,不利于后期代码的维护...是在Sub过程的定义中出现的变量名。因为没有实际值,只是形式上的参数,所以被称为形参。 2、实参 后面在通过call语句调用jisuan过程时,Call jisuan(i:=2, k:=4)。...实参是实际参数的简称,是在调用sub过程时传递给sub过程的值,在VBA中,实际参数可以是常量、变量数组或是对象类型的数据。 在调用sub过程时,把实参传递给形参,就被称为形参和实参的结合。...(实参是数组的情况再介绍完数组后再补充)。下一节介绍地址和值两种方式,祝大家学习快乐。 ----

    1.6K30

    【C语言基础】:函数详解

    数组做函数参数 在C语言中,可以数组作为函数参数传递给函数。这样做可以方便地在函数内部对数组进行操作和修改。...数组参不会创建新的数组:当数组作为参数传递给函数时,函数内部使用的是原始数组的地址,而不是创建一个新的数组。这意味着对形参数组的修改直接影响原始数组。...形参操作的数组和实参的数组是同一个数组:当数组作为参数传递给函数时,形参操作的是原始数组的副本。也就是说,形参数组和实参数组指向的是同一个数组。因此,对形参数组的修改影响到实参数组。 5....同时,函数的嵌套调用也可以形成函数调用栈,函数按照一定的顺序被调用和返回实现程序的逻辑流程。 (2)....函数的链式访问 函数的链式访问是指通过连续调用多个函数,将它们返回值作为下一个函数的参数,实现一连串的操作。

    15910

    Excel VBA编程教程(基础一)

    Sub MyCode() '声明循环变量和是否变量 Dim i As Integer Dim isBlank As Boolean '循环 A2-A10...End If Next i End Sub 以上代码运行后,在 A2:A10 单元格区域,依次判断每一个单元格是否,如果是,则用上一个单元格的值填充。...单独的一行或多行代码无法运行,必须把它们放置在一个过程里,才能运行。 在示例中,Sub 过程名() 开头,End Sub 结尾部分是一个过程的主题,其余代码需要放置在两者之间。...'如果,则用上方的单元格的值填充当前单元格 If isBlank Then Cells(i, 1) = Cells(i - 1, 1) End If 运行 下面,我们实际运行我们的示例代码...) 两行代码放置在一行 比较运算符 比较运算符,比较提供的两个变量,如果符合比较条件,返回 True,否则,返回 False。

    12.1K22

    指针进阶详解

    首先p先和*结合,说明p是一个指针变量,然后指向一个大小10个整型的数组,所以p是一个指针,指针,指向一个数组,叫数组指针.其类型用上述求数组类型的方法来获得,也就是去掉变量名,就可得出 int( *...,理所当然要用指针接收,用数组接收只是便于理解,其次用数组接收VS帮我们处理,就是把形参数组处理指针。...pfunArr指向的是一个数组,其元素类型数组除去[]就是数组中每个元素的类型。指针变量去掉变量名便是指针所指向内容的类型。 回调函数 回调函数就是一个通过函数指针调用的函数。...如果你把函数的指针(地址)作为参数传递给另一个 函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。...} int main() { int ret=text(Add); printf("%d\n", ret); return 0; } 此代码中的Add函数,不是直接调用而是把该函数作为参数,传递给另一个函数

    19830

    借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05

    指针     Go lang指针是当一个指针被定义后没有分配到任何变量时,它的值 nil。 nil 指针也称为指针。...: value of a after function call is 58     但如果参过程中使用指针,a变量的指针对象传递到方法内,方法内修改的其实是内存地址变量,如此就可以值类型对象的值对应更改...一种方法是一个指向数组的指针传递给方法: package main import ( "fmt" ) func modify(arr *[3]int) { (*arr)[0] = 90 }...func main() { a := [3]int{89, 90, 91} modify(&a) fmt.Println(a) }     程序返回: [90 90 91]     虽然可以用指针传递给一个数组作为方法的实参并对其进行修改...: [90 90 91]     因为切片与指针一样是引用类型,如果我们想通过一个函数改变一个数组的值,可以将该数组的切片当作参数传给函数,也可以这个数组的指针当作参数传给函数,显而易见,使用切片更加方便

    45640

    【C语言】带你手把手拿捏指针(3)(含转移表)

    一、字符指针变量    在指针的类型中我们知道有⼀种指针类型字符指针 char* ,⼀般使⽤的方式如下:    这里我们字符变量a的地址交给指针变量p,然后进行使用,但还有一种方式如下: #...我们可以思考一下,如果是两个变量,那么它们开辟两个空间存放相应的数据,可能数据不同,所以本质上它们并不相同,而一个常量字符串    本身就是常量,不会被修改,所以不会像变量一样开辟两个空间存放,而是会将一个常量字符串存在同一个空间...,而是一个指针数组    而第二段代码中,我们p2和 * 用小括号()括起来了,也就改变了优先级,p先和 * 结合,说明p是⼀个指针变量,然后指针指向的是⼀个大小10个整型的数组。...   为了加深理解,也同时我们的二维数组参本质讲解做铺垫,这里我们举一个例子:    如何使用数组指针访问一维数组?...,参数,没有变量名,说明它只是一种函数指针类型,那么把它放在0的前面有什么用呢?

    8410
    领券