int main()
{
int* p= (int*)malloc(8);
for(i=0;i<128;i++)
p=0;
}
Run Code Online (Sandbox Code Playgroud)
我想为所有128位分配所有零.以上代码是否正确?我想澄清一下.我的目标是将128位分配给一个变量并将所有零分配给所有128位.
小智 5
不.您只需将0分配给指针本身(这样就会丢失它并泄漏内存).用这个:
(编辑:正如Jim Balter指出的那样,处理非8位字符很容易:)
int main()
{
unsigned n = (128 + CHAR_BIT - 1) / CHAR_BIT;
unsigned char *p = malloc(n);
for(i = 0; i < n; i++)
p[i] = 0;
}
Run Code Online (Sandbox Code Playgroud)
但这是重新发明轮子.为什么不使用标准功能memset()?
int main()
{
unsigned n = (128 + CHAR_BIT - 1) / CHAR_BIT;
unsigned char *p = malloc(n);
memset(p, 0, n);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
320 次 |
| 最近记录: |