小编Chr*_*ris的帖子

在C函数中需要"nmem"和"size"参数需要什么?

可能重复:
c malloc和calloc之间的区别
为什么calloc需要两个参数而malloc只需要一个?

我注意到这有很多C函数调用,特别是处理内存或文件操作的函数,但并非所有函数都使用这两个参数.例如,malloc传递一个参数,即所需内存空间的大小(以字节为单位).另一方面,Calloc传递两个参数,一个元素的字节大小和元素的数量(大小和nmem).还有其他函数也使用这些大小和nmem参数.

从本质上讲,calloc调用将分配与调用malloc(nmem size)相同的内存量,因此所有真正发生的事情是asterisk()被替换为逗号(,).至少这是我能从更高层面告诉我的工作.我没有看到调用calloc(1,nmem size),calloc(nmem size,1)或calloc(nmem,size)的区别.

是否有一些实际发生在较低级别的事情使调用calloc(1,nmem*size)与calloc(nmem,size)根本不同?

编辑:我知道calloc和malloc之间的功能差异.我很感兴趣为什么参数有差异.还有其他函数使用2个大小参数作为总大小(fread,fwrite等).我并不关心具体的功能,而是为什么函数中使用的总大小有两个参数,而基本上总大小变成两个参数相乘.我发现大多数时候使用这些函数时,我使用"size"参数中需要的大小,"nmem"(有时是"count"等)参数使用"1".

c linux memory parameters

8
推荐指数
1
解决办法
425
查看次数

如何从C中检查目标文件是否为COFF或ELF格式?

我希望能够从我的C代码中检查目标文件的格式,以便我可以根据它是COFF还是ELF格式使用不同的函数来读取文件.

这是可能的,如果是的话,我该怎么做?

这在Linux顺便说一下,如果这有任何区别.

c linux coff elf

5
推荐指数
3
解决办法
7279
查看次数

标签 统计

c ×2

linux ×2

coff ×1

elf ×1

memory ×1

parameters ×1