fun1(int)
{
printf("22222");
........
........
}
main()
{
init_config();
printf(“11111”);
fun1(100);
free();
}
终端打印情况是11111会打印,2222不会打印,说明fun1并没有执行,然后就提示段错误,问可能是什么情况
调用顺序aud_toohot_config_create();aud_too_hot(80);aud_clipping_config_free();就是aud_too_hot() 那个函数进不去不会打印1111111,就直接段错误了config_create()确定有执行的
init哪里只有malloc跟参数初始化没线程呢,我修改了提问,放上了图片
动态库会不会可能导致段错误的情况呀
你在temp_config->...前面加一句输出看看
if(temp_config==NULL){
printf("33333333");
return -1;
}
不行呢,没有打印 333333,效果还是跟以前一样,感觉malloc没有分配到内存的话,aud_too_hot()的第一句应该还能打印才对
追答你的调用代码是什么样的?怎么组织的?
追问测试代码:
终端 ”toohot_config” 是会打印的
还有一点是很奇妙的,我的源码还有实现其他的功能接口,其他的接口功能测试的时候也是有类似的段错误现象
你确定aud_toohot_config_create();的返回值是0吗?temp_config指针的作用域有没有问题?
把所有的编译生成的.o清除,重新编译一下!
你这是在什么系统下开发的程序?c语言的应用场景比较少,你在做什么呢?
我简化写嘛,我放上图片了,大神有空看看,只是调用接口测试而已,这bug已经折磨我快10多天了
我简化写嘛,我放上图片了,大神有空看看,只是调用接口测试而已,这bug已经折磨我快10多天了
我简化写嘛,我放上图片了,有空看看