_msize函数可以或者传入指针分配的大小空间,但传入的指针必须是分配空间的首地址才行。

char *pChar = new  char[250];
char *pTemp = pChar + 15;
size_t siz = _msize(pChar);

类似这段代码运行到_msize时就会导致程序崩溃。

同样_msize调用std::vector和qt的qvector对象的data()返回的指针时也会发生崩溃现象。

跟进std::vecotor::data函数可以大致看出,std::vecotor::data并没有返回分配内存的首地址。

从qvector可以更容易看出,在实际的数据地址之前,其实是还有一段数据头的。

Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐