GBASE 8s UDR内存管理_04_mi_zalloc

        mi_zalloc()函数分配并零填充给定大小的内存块,并返回指向指定大小的用户内存块的指针。

语法

Void *mi_zalloc (size)

mi_integer大小;size要分配和用0填充的字节数。
在客户端LIBMI应用程序有效
在用户定义例程中有效

用法

        mi_zalloc()函数为DataBlade API模块分配用户内存的字节数。mi_zalloc()函数的行为与mi_alloc()函数完全相同,不同的是mi_zalloc()在返回指向内存的指针之前,用0填充分配的内存块。mi_zalloc()函数是一个用于用户内存的构造函数。

服务器

        mi_zalloc()函数在当前内存持续时间内分配内存。缺省情况下,当前的缺省持续时间为PER_ROUTINE。在C UDR中,当引发异常时,数据库服务器也会自动释放通过mi_zalloc()分配的内存。使用DataBlade API内存管理函数,例如mi_zalloc(),在C UDR中分配内存。

        使用DataBlade API内存管理功能可以确保数据库服务器自动释放内存,特别是在出现返回值或异常的情况下,如果UDR不使用其他方法就无法释放内存。仅限客户端:在客户端LIBMI应用程序中,mi_zalloc()的工作原理与malloc()完全相同:它在客户端进程的堆上分配存储空间。但是,数据库服务器不执行任何自动垃圾收集。因此,客户端LIBMI应用程序必须使用mi_free()函数显式地释放mi_zalloc()进行的所有分配。

客户端

        在客户端LIBMI应用程序中,mi_zalloc()的工作原理与malloc()完全相同:它在客户端进程的堆上分配存储空间。但是,数据库服务器不执行任何自动垃圾收集。因此,客户端LIBMI应用程序必须使用mi_free()函数显式地释放mi_zalloc()进行的所有分配。客户机LIBMI应用程序忽略内存持续时间。客户机LIBMI应用程序可以使用DataBlade API内存管理函数或系统内存管理函数(例如malloc())。

        mi_zalloc()函数返回一个指向新分配内存的指针。转换此指针以匹配您分配的用户定义缓冲区或结构的结构。当不再需要mi_zalloc()分配的内存时,DataBlade API模块可以使用mi_free()函数来释放由mi_zalloc()分配的内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

八珍豆腐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值