gpt4 book ai didi

c - 从 "char x[n]"转换为 "char* x"后保护 NULL 的有效/简便方法?

转载 作者:太空宇宙 更新时间:2023-11-04 06:05:35 25 4
gpt4 key购买 nike

我最近更改了一些代码,使 char name 字段动态化。

原来是这样

struct boo 
{
char name[100];
...
}

我把它改成了

struct boo
{
char *name;
...
}

所以这使得 name 动态分配存储名称实际需要的内存量。

无论如何.. 这个改变的结果将要求我在代码中大约 1000 处添加 if(boo->name) 空指针检查。

所以只是想知道是否有任何智能或有效的方法(减少程序员的开发时间)来执行此空指针检查。

最佳答案

确保在创建结构时分配缓冲区比在使用结构的任何地方检查它要容易得多。一开始就不要让它为 NULL!

如果在获得相关数据之前需要将指针值放入结构中,则可以保留一个全局空字符串专门用于此任务。在尝试释放 内存之前与此指针进行比较。

如果这是 C++ 而不是 C,请认真考虑使用 std::string 而不是指针。

关于c - 从 "char x[n]"转换为 "char* x"后保护 NULL 的有效/简便方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11077197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com