malloc(sizeof(0))返回的是否是有效的指针,为什么?

来源:百度知道 编辑:UC知道 时间:2024/06/28 17:38:52

是有效的指针,因为sizeof(0) 应该返回一个int所占空间的大小的指针,#include<iostream>
using namespace std;
void main()
{
int* t = (int*)malloc(sizeof(0));
*t = 0;

free(t);
}试试看

是有效指针,0是一个int类型的常量,所以sizeof(0)相当于sizeof(int),所以整个表达式相当于:

malloc(sizeof(int));

将分配一个int类型长度的空间,反回该空间的地址。