【发布时间】:2014-01-29 05:04:01
【问题描述】:
我正在为指针分配一个新的内存块,但显然该块的大小不是我作为参数传递给 malloc 的那个大小
char *q="tre";
printf("q in main %zu\n", sizeof(q));
q = (char*)malloc(6);
printf("q in main %zu\n", sizeof(q));
输出
8
8
然而,指针确实指向一个新的内存块。 这怎么可能?
【问题讨论】:
-
您是否希望每次将
char *指向不同的内存地址时都会改变它的大小? -
你得到的是指针的大小。