在函数中使用后将字符指针设置为 NULL

乌斯曼开发商

在 C 中,我有一个函数,在该函数中我获取一个字符串作为参数,然后在使用它之后,我想销毁它,因为我必须在无限循环中调用它,并且在 5 之后Process 返回 -1073741819 (0xC0000005)分钟。

这是我的功能:

void renderText(char *text) {
    //use it here and then destroy it.
    *text = NULL; //not working!
    text = NULL; //also not!
    text[0] = '\0'; //also not!
}

传递参数为:

renderText("Hello There!");

我可以使用一个malloc()函数来创建一个字符串,然后可以传递给上面的函数,但是我必须无限次调用它,这样有什么方法可以在函数中将它设为 NULL,因为指针是通过引用调用的。

阿查尔

这里

void renderText(char *text) { }

textchar*类型的,在使用它之后,不要指向text任何无效的内存位置,它总是更好地初始化,NULL这意味着它不指向任何内容。因此这

text = NULL;

仅在此 API 中是正确的,因为它不反映在此函数中本地创建的NULL调用函数中的分配text

*text = NULL;

无效,因为*text它的char类型 whileNULL等效于(void*)0

text[0] = '\0';

如果错误处理是根据上述语句,则工作正常。例如

if(strlen(text) != 0) { /* something is there inside text */ }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章