这几天我测试c++一些代码时发现这个现象
chat a[50];
chat *b = new char [50];
sizeof(a); \sizeof返回50,是数组大小
sizeof(b); \sizeof返回的是指针本身占用大小,而不是开辟的空间的大小
以前我学的是说字符数组a是一个指针,指向字符串,同样是指针,为什么返回大小不同,现在我却不懂了。
哪位大 佬可以解惑一下。
这几天我测试c++一些代码时发现这个现象
chat a[50];
chat *b = new char [50];
sizeof(a); \sizeof返回50,是数组大小
sizeof(b); \sizeof返回的是指针本身占用大小,而不是开辟的空间的大小
以前我学的是说字符数组a是一个指针,指向字符串,同样是指针,为什么返回大小不同,现在我却不懂了。
哪位大 佬可以解惑一下。
*B是一个指针,你sizeof(B)它就会返回这个指针的长度
而A是一个数组,返回的自然而然是数组的大小,就是你自己开的大小50