我有一本书,上面写着以下内容:
\n\n\nmalloc() 分配仍然存在一个小问题。我们仍然需要解释一下温度 malloc() 的左侧部分。(int\n*) 是做什么用的?
\n(int *) 是一个类型转换。您\xe2\x80\x99在本书中已经看到了其他类型的类型转换。要将 float > 值转换为 int,请将 (int) 放在浮点值之前,如下所示:
\n\n
aVal = (int)salary;类型转换中的 * 表示该类型转换是指针类型转换。\n malloc() 始终返回字符指针。如果您想使用\nmalloc() 分配整数、浮点或除字符之外的任何类型的数据\n,则必须对 malloc() 进行类型转换,以便接收分配的指针\n变量(例如 temps)接收\n正确的指针数据类型。temps 是一个整数指针;您不应该将临时值分配给 malloc()\xe2\x80\x99s 分配的内存,除非您将 nmalloc() 类型转换为整数指针。因此,前一个 malloc() 的左侧只是告诉 malloc() 一个整数指针,而不是默认的字符指针,将指向第一个分配的值。
\n
温度:
\nint * temps; /* Will point to the first heap value */\ntemps = (int *) malloc(10 * sizeof(int)); /* Yikes! */\nRun Code Online (Sandbox Code Playgroud)\n在阅读类似的线程后,据说malloc()返回一个 void 类型的指针,而不是字符类型的指针。我错过了什么吗?我知道不需要类型转换malloc()在 C 中进行类型转换。