linux 怎么用sizeof檢測指針指向數(shù)組大???
怎么用sizeof檢測指針指向數(shù)組大???對于cout<< umsize(P)<<endl,輸出應(yīng)該是24,因為umsize(P)“返回堆中分配的內(nèi)存塊的大小?!睘镻分配6個int,每個
怎么用sizeof檢測指針指向數(shù)組大???
對于cout<< umsize(P)<<endl,輸出應(yīng)該是24,因為umsize(P)“返回堆中分配的內(nèi)存塊的大小。”為P分配6個int,每個int是4字節(jié)。對于cout<<sizeof(*P)<<endl,輸出是int數(shù)據(jù)占用的內(nèi)存大小,在32位計算機上為4,在16位計算機上為2。如果寫入cout<< size of(P)<< ndl,輸出仍然是4,因為P是指針,只需要4個字節(jié)。
malloc(sizeof(0))返回的是否是有效的指針,為什么?
是有效的指針,因為sizeof(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,因為所有指針的大小都是4*source是指針指向的元素,int類型占用4個字節(jié),所以它等于4