【发布时间】:2020-03-10 13:59:53
【问题描述】:
如何在函数check_size中获取200的值?
#include <stdio.h>
#include <string.h>
int check_size(char *ptr)
{
//if (sizeof(ptr) == 200)
//{
// ...
//}
printf("%ld \n", sizeof(ptr));
printf("%ld \n", sizeof(*ptr));
printf("%ld \n", strlen(ptr));
return 1;
}
int main()
{
char ptr[200]="\0";
int s = check_size(ptr);
return 0;
}
【问题讨论】:
-
不使用智能指针就无法做到这一点。
-
在这段代码中,ptr 不是动态分配的内存。很难确定 100%,如果操作系统无法分配 200 字节的内存,程序执行甚至会无法启动。因此,谈到一致的操作系统,一旦进程启动并运行,您就可以确定分配了 200 字节的内存。
-
size_t的正确格式说明符是sizeof()和strlen()返回的内容,是%zu。
标签: c string function size sizeof