我刚开始使用C并遇到了一些我不理解的代码.有人可以解释它的作用吗?
short int * work = (short int *) malloc(1000*16);
Run Code Online (Sandbox Code Playgroud)
你究竟不明白什么?该代码声明了short int*
一个指向一个或多个16位(至少 16位)有符号整数的指针.它将它初始化为一个返回的指针malloc
,它是一块足以容纳1000 * 16
字节的内存块.
现在,他们为什么要使用1000 * 16
?我不知道.通常你会分配num_elements * sizeof(element)
,即num_elements * sizeof(short int)
.
更典型地,使用num_elements * sizeof(*work)
以便在更改指针类型时代码不会中断.
另请注意,在C中强制转换malloc的返回值是个坏主意.