LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1118|回复: 5

strncmp导致程序异常退出,百思不得其解啊!

[复制链接]
发表于 2008-7-16 15:27:44 | 显示全部楼层 |阅读模式
.........
        {
                newstr = (char *) malloc(vl);
                if (newstr == 0) return NULL;
                snprintf(newstr, vl,  "%s=%s", var, value);
                for (i = 0; (p = script_env)!= NULL, i<_MAX_VAR-1; i++) {
                        if (strncmp(p, var, varl) == 0 && p[varl] == '=') {
                                /*free(p);
                                script_env = newstr;
                                return script_env;*/
                                syslog(LOG_INFO, "script_env[%d] = %s", i ,script_env);
                        }
                }
                if (script_env==NULL)
                        script_env = newstr;
                return script_env;
        }
...............

就是这个strncmp,如果注释掉程序正常,若存在则程序异常退出,感觉与内存泄露有关,但看不出问题在哪啊?
发表于 2008-7-17 08:33:06 | 显示全部楼层
script_env 的初始值怎么来的?
回复 支持 反对

使用道具 举报

发表于 2008-7-25 14:49:14 | 显示全部楼层
代码有问题.
回复 支持 反对

使用道具 举报

发表于 2008-7-28 16:54:35 | 显示全部楼层
去头去尾的,怎么看得明白?怎么也要把函数弄全吧?
回复 支持 反对

使用道具 举报

发表于 2008-7-31 23:36:04 | 显示全部楼层
代码写得这么乱,想把人看死啊?你的这个for绝对有问题
回复 支持 反对

使用道具 举报

发表于 2008-8-14 10:47:26 | 显示全部楼层
我只能有一个提示:strncmp,等字符串比较查找之类的函数要保证参数非空,传进NULL就会死。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表