
char str=new char[4];
str仅仅是个指针,它指向的那块空间的长度是无法求出的
实际应用中这样的要求基本不会存在,如果这个数组的长度确定是4了,那就弄个自动数组就行了比如char str[4];这样就可以用sizeof *** 作符得出具体长度
如果真的要求在运行期动态分配长度,那么必然会有一个表示长度的变量,那么用这个变量就行了,比如
int len;
cin>>len;
char str= new char[len];
要长度就去找len啊
可以使用数组的indexof()方法,如果返回值为-1则说明不存在,如果返回值为大于-1的整数,则说明存在。例如:
var
arr
=
[1,2,3];
arrindexof(1);
//
返回0
arrindexof(5);
//
返回-1
附:返回值为数组中的最靠前元素在数组的位置
(1) 直接读取缓冲区
读取
BYTE buf;
SafeArrayAccessData(psa, (void )&buf); //安全指针
SafeArrayUnaccessData(psa); //关闭后仍然可读取数据,但不能写入
写入
BYTE buf;
SafeArrayAccessData(psa, (void )&buf); //安全指针
for(int i=0;i<len;i++)buf[i]=(i+2)%256; 直接修改缓冲区
SafeArrayUnaccessData(psa);
(2) 利用函数单个读取(SafeArrayGetElement,SafeArrayPutElement)
读取
long len=psa->rgsabound[0]cElements;
BYTE pData=new BYTE[len];
for (int i=0;i
{
::SafeArrayGetElement(psa,&i,pData+i)
}
写入
long len=psa->rgsabound[0]cElements;
for (int i=0;i
{
::SafeArrayPutElement(psa,&i,pData[i])
}
以上就是关于char* 型字符数组中间如果有值为0的字符,如何正确取得这个数组的大小全部的内容,包括:char* 型字符数组中间如果有值为0的字符,如何正确取得这个数组的大小、如何判断数组中的元素大小、高分求教:VARIANT中数组大小如何获取等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)