我有一个char *str[xx]经常使用员工的C程序.一些字符串使用赋值运算符(=)填充,无需释放.但是其他一些(在同一个数组中)填充使用strdup(),需要在程序结束时释放:
char*str [10];
STR [1] = "您好";
STR [K] =的strdup( "HI");
两个字符串指针都是非空的,释放str [i]自然会产生"seg fault".我的问题是,在我的程序结束时,我没有跟踪哪个指针指向由其生成的字符串strdup().你可以帮助我找到生成的字符串,strdup以便我可以释放它们吗?谢谢
遗憾的是,没有语言功能可以(便携地)区分指向动态分配内存的指针和不指向内存的指针.您可以手动保留动态分配的索引列表.或者,如果性能不是一个大问题,则选择始终在堆上进行分配.
| 归档时间: |
|
| 查看次数: |
435 次 |
| 最近记录: |