检查已分配内存的大小

时间:2016-11-23 14:10:44

标签: c dynamic-allocation

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

我希望我的程序返回已分配的内存大小。 目前我正在使用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; 
}

1 个答案:

答案 0 :(得分:7)

您无法检查C中已分配的空间量或检查数组的大小。您需要自己明确地将其保存为变量。