C语言为字符指针(char*)分配动态内存空间(malloc),为什么空间不发生变化

如图,我为password这个字符型指针(char*)分配了50个字节的动态内存,为什么sizeof函数测出来的长度仍然为4?

char*是指针,你获取指针(地址)的长度,32位机器当然是4。
C语言malloc分配出来的内存是不能通过sizeof获取长度的。追问

..原来是这样,我之所以会这样测是因为我用scanf给password这个字符指针赋值,程序就提示内存错误然后闪退,我以为是内存分配不成功的原因,请问您能帮我看看嘛?

代码就是:scanf("%s",password);

温馨提示:答案为网友推荐,仅供参考
相似回答