字符串数组如何清空?
发布网友
发布时间:2022-05-26 04:35
我来回答
共4个回答
热心网友
时间:2024-12-11 08:01
在c++中:
for(int i = 0; i < MaxSize; i++)
{
if(s[i] != NULL)
delete s[i]; //释放s[i]占据的内存
}
上述做法是将s[MaxSize]数组中存储的指针指向的内存释放掉,假定这些指针的初始化是new BTNode 后产生的 。
由于BTNode *s[MaxSize];这句的定义表明是在栈上定义的内存,它会在程序退出时自动释放,如果它是定义在函数内的话,那么它将在函数调用完成之后自动释放。因此你所问的关于*s[MaxSize]的空间的释放实际是每个s[i]元素指向的内存的释放。因此,你只要按照上述方法书写代码即可释放掉整个数组指向的内存。
我这样解释可以吗?
热心网友
时间:2024-12-11 08:02
释放以后其实里面还是有内容的,并不干净,是你之前使用遗留下来的,直到你下一次再对其赋值为止。
正确的做法是;对于每个数组元素,都赋值为你想要的值,这就看你对“清空”的定义了。。。
热心网友
时间:2024-12-11 08:02
node是个双向链表吧,要清除链表可用下面的函数,只要将链表的指针作为参数添入即可。
void free_node (node *p)
{
node *next = NULL;
while (p != NULL)
{
next = p->rchild;(假定rchild为下一个元素的指针)
free(p);
p = next;
}
}
热心网友
时间:2024-12-11 08:03
写入空格不久可以了
或者写入0
或者释放空间