p1 = (char *)malloc(10);

来源:百度知道 编辑:UC知道 时间:2024/06/17 00:39:53
分配的类型可以强制转换为指针类型的吗?malloc(10)是分配10个字节的内存空间吗?

声明为 char *p1;
才可以
p1 = (char *)malloc(10);
或 p1 = malloc(10);

malloc(10)是分配10个字节的内存空间。

声明为 int *p1;
不可以 p1 = (char *)malloc(10);
应当写 p1 = (int *) malloc(8);
或 p1 = (int *) malloc(10 * sizeof(int));

可以这么作,但不是必须的,如果p1是字符指针,那么p1=malloc(10);的作用也一样,这两种写法都符合ANSI C标准。