要将字符串初始化为0,您可以执行以下操作:
char description[256] = {0};
Run Code Online (Sandbox Code Playgroud)
这将为数组的每个元素分配0.
只是将第一个元素设置为0
('\0'
)不会删除它的内容.它甚至不保证整个字符串被设置为空字符.
正如其他人所说,在函数关闭之前,当它被放弃时,你不能"擦除"静态创建的对象.从技术上讲,当函数被放弃时它也不会被删除 - 堆栈指针只是被改变了.如果你对被删除的数据感到偏执,你应该遍历数组,将每个条目设置为0
('\0'
).
将char数组的第一个元素设置为\ 0就足以确保'description'是一个格式正确的实际字符串.元素1到255都可以是垃圾,只要元素0为0,描述就是零长度字符串.
你不必担心上面发布的代码中的内存泄漏,因为数组是在堆栈上分配的.一旦它从堆栈中掉落(超出范围),char数组就会被释放.