Lex*_*Lex 1 c memory-management
(int*)在以下代码中做了什么?
int *ptr = (int *) malloc(10 * sizeof (int));
Run Code Online (Sandbox Code Playgroud)
我是C的新手,我已经看到上面的代码有和没有(int*)所以我想知道它做了什么.
这意味着"将void*指针强制转换为int*指针" - malloc()返回void*并要求编译器将其void*视为原样int*.这种构造malloc()仅在C++代码中需要,并且在C中完全不需要甚至是邪恶的,因为它可能导致相当微妙但破坏性的错误.