linux 怎么用sizeof檢測指針指向數(shù)組大???
怎么用sizeof檢測指針指向數(shù)組大???對于cout<< umsize(P)<<endl,輸出應(yīng)該是24,因?yàn)閡msize(P)“返回堆中分配的內(nèi)存塊的大小?!睘镻分配6個int,每個
怎么用sizeof檢測指針指向數(shù)組大小?
對于cout<< umsize(P)<<endl,輸出應(yīng)該是24,因?yàn)閡msize(P)“返回堆中分配的內(nèi)存塊的大小?!睘镻分配6個int,每個int是4字節(jié)。對于cout<<sizeof(*P)<<endl,輸出是int數(shù)據(jù)占用的內(nèi)存大小,在32位計算機(jī)上為4,在16位計算機(jī)上為2。如果寫入cout<< size of(P)<< ndl,輸出仍然是4,因?yàn)镻是指針,只需要4個字節(jié)。
malloc(sizeof(0))返回的是否是有效的指針,為什么?
是有效的指針,因?yàn)閟izeof(0)應(yīng)該返回一個指向int所占用空間大小的指針,#include
使用命名空間STD
void main()
{
int*t=(int*)malloc(sizeof(0))]*t=0
free(t)
}try
sizeof(Arr1)。Arr1是一個數(shù)組,其中int變量占用4字節(jié),因此3個變量占用12字節(jié)。Int*source,source是指針。如果它是sizeof(source),您會發(fā)現(xiàn)它是4,因?yàn)樗兄羔樀拇笮《际?*source是指針指向的元素,int類型占用4個字節(jié),所以它等于4