gpt4 book ai didi

c - 使用 if 语句的段错误

转载 作者:太空宇宙 更新时间:2023-11-04 02:59:01 26 4
gpt4 key购买 nike

我这里有这段 C 代码,

当存在 else 语句时,我尝试打印指针引用,但出现段错误。在 if(videoPlaying) 部分打印指针引用,打印正常,但在其他任何地方,它都会出现段错误。

omxPlayer 被定义为 FILE *omxPlayer = NULL;

if(videoPlaying == 0)
{
omxPlayer = popen("omxplayer diehard.mp4", "w");
printf("%p\n", omxPlayer);
videoPlaying = 1;
}
else
{
printf("%p\n", omxPlayer);
}

最佳答案

videoPlaying != 0 时,您应该检查代码的控制流,很可能您正在该流中的某处破坏内存。仅打印出损坏指针的地址应该仍然可以正常工作,因为地址始终有效,只有该地址中的内容无效,所以肯定还有更多错误并且在您显示的代码中没有看到。

您最好的选择是检查代码或在 valgrind 或任何此类内存分析工具下运行您的代码,它应该会指出您哪里出了问题。

关于c - 使用 if 语句的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14227699/

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