c++指针怎么知道指向内存的大小

如题所述

第1个回答  2009-07-26
你不事先分配内存空间你叫指针指向哪里
第2个回答  2009-07-22
sizeof
第3个回答  2009-07-22
你能将一个指针指向一个地方,肯定事先已经知道那块内存是怎么生成的,其大小当然知道.
第4个回答  2009-07-22
strlen

c++指针怎么知道指向内存的大小
Type* Tmp = reinterpret_cast<Type*>(ptr);你可以试试,没有任何人知道内存有多大,你只能知道你在用什么类型去使用这个内存,而那个类型的大小你是知道的(编译器会帮你计算的).

C++ 怎么得到字符串指针指向的内存块的大小?
但是实际指向内存块的大小,是无法知道的。这是因为指针在作为参数传递的时候,只传过来了地址值,而没有传过来任何长度信息 实际上指针的长度信息是编译阶段获取的,而函数参数无法包含这种信息,故而不可能从指针参数获得指向空间的大小,即是貌似可以的方法,得到的长度也是不可靠的 ...

c\/c++的指针大小如何确定?
sizeof(p2)得到的是指针变量p2的大小,p2存储的是一个地址,32位系统环境就是4个字节,所以这里是4 int *p2 = new int[100]; 这句是分配了4*sizeof(int)这么大的内存空间,让p2指向了这段内存空间的首地址,并不是把p2变成了数组,p2还是那个p2,是个指针变量,只占4个字节的内存空间。

C++中如何来测量一个数组空间的大小或者一个变量(比如说字符串变量...
对于字符串,或其他指针,需要先计算字符串长度,然后乘以每个字符的大小,比如 char* p = "12345";int n = strlen( p );int size = (n+1) * sizeof(char);

c\/c++怎样检测指针是否已经分配空间
int * p;声明了一个指针变量 p,就为它分配了内存了,它占2字节大小的内存。如果你说 p = new int[2];才算是分配内存,那我告诉你,这句话的意思:通过new 向系统申请sizeof(int) * 2的内存大小,接下来把这块内存的地址返回,并保存在p中。并不是说p有2个int大小的内存呢。~~~int * ...

怎么区分指针所指向的内存的大小
1. 指针的大小,所有指针的大小都是32位的,sizeof(int*)跟sizeof(double*)都等于4 2. 指针指向内存的大小是不一定的,这个大小保存在进程内存管理链表中,目前在用户层编程还没有方法能获取到。3. 指针的访问 实际上你可以理解成 *p = p[0]; 具体的访问手段与你的p指针的类型定义有关,编译...

C++调试中,怎样看到指针指向空间中的所有数据
有办法,调试的时候在想看的数组上点右键,选择QuickWatch,弹出一个窗口后,如果你想要看这个数组的前10个元素,就在第一个编辑框数组名的后面写逗号,然后10,想看100个元素,就写个逗号,写个100

C++如何获得vector已使用内存的大小
比如 :include <stdio.h> include <vector> void main(){ std::vector<int> vcData;printf("内存大小为:%d\\n", vcData.capacity() * sizeof( int ));}

c++指针怎么比大小
假设有两个整型指针p,q的声明为int* p, q;如果直接比大小如p > q,比较的是指向的数据在内存中的先后关系 若要比较指针指向的数据的大小,应用*运算符获取指针指向的值再进行比较,如*p > *q、*p == *q

如何在C++中检测一个指针是否指向堆内存
{\/\/指针有效}else{\/\/指针无效}然而这样的判断方法需要有一个前提保证的,即是前面所说的在声明指针时如果没有明确指向一个已知的变量,则将其置空,在不再需要使用这个指针时也将其置空。如果该指针指向一块动态分配的内存空间,在释放后也应该将其置空。在这个前提下,前面判断才是正确的 ...

相似回答