【问题标题】:Posix equivalent of LocalAlloc(LMEM_ZEROINIT, size)等效于 LocalAlloc(LMEM_ZEROINIT, size)
【发布时间】:2010-06-09 21:22:17
【问题描述】:

我有在 Windows 上运行的代码,调用 LocalAlloc 如下:

LocalAlloc(LMEM_ZEROINIT, size)

我需要等效的 malloc 或 calloc 调用才能通过 Mono 使其在 Unix 系统上工作。简单的答案?

【问题讨论】:

  • “通过 Mono”是什么意思?
  • 抱歉,我是通过 P/Invoke 调用的,但这可能无关紧要。

标签: c++ c libc


【解决方案1】:

据我了解,它只是分配归零内存,因此 calloc(1, size) 应该足以分配 size 归零字节。

【讨论】:

    【解决方案2】:

    我认为 LocalAlloc 已被弃用,取而代之的是 HeapAlloc?

    无论 calloc()、malloc() 和 realloc()、free() 都是 POSIX 的内存管理选择。

    你总是检查返回值:

    char *retval=calloc(1, sizeof(object type) );
    if(retval==NULL)
    {
       perror("Memory error");
       exit(EXIT_FAILURE);
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-23
      • 2019-06-29
      • 2021-09-22
      • 1970-01-01
      相关资源
      最近更新 更多