我正在得到realloc(): invalid next size
对于一个程序。所以我只是编写了这个代码来了解发生了什么。
#include <stdio.h>
#include <stdlib.h>
int main()
{
char *inp;
printf("%lu ",sizeof(inp));
char *res = (char*)malloc(15*sizeof(char*));
printf("%lu ",sizeof(res));
res = "hello world";
printf("%lu\n",sizeof(res));
return 0;
}
令人惊讶的是它输出8 8 8
。谁能解释一下为什么会这样?为什么默认是8?如何malloc()
影响大小inp
?
sizeof(inp)
给出指针的大小(8 字节,64 位),而不是该指针下的存储空间。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)