检查已分配内存的大小
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 或检查数组的大小。需要自己显式保存为变量
我正在编写一个程序,它接受数组的大小作为参数,然后应该为该大小动态分配内存。
我希望我的程序 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 或检查数组的大小。需要自己显式保存为变量