检查已分配内存的大小

Checking size of allocated memory

我正在编写一个程序,它接受数组的大小作为参数,然后应该为该大小动态分配内存。

我希望我的程序 return 分配的内存大小。 目前我正在使用 argv 读取输入值,然后使用 mmap 进行动态分配。我还使用 for 循环来显示数组的每个索引中保存的数字。

我知道可以使用 malloc 进行分配,但我无法使用它。 我想我需要从最后一个元素开始检查所有单元格,直到收到 SEGFAULT 信号。

感谢您的帮助。

编辑: 没有库等的短代码...

input = (atoi(argv[1]));
int* arr = mmap(0, input, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_ANONYMOUS, fd, 0);

for (i = 0; i < input; i++) {
    arr[i] = i + 1; 
}

您无法在 C 中检查分配的数量 space 或检查数组的大小。需要自己显式保存为变量