jump to label [XXX]的报错
char *a1 = (char *)malloc(256);
if (a1 == NULL)
{
goto EXIT;
}
char *a2 = (char *)malloc(256);//这里就会出现这样的问题
正确的做法是提前声明好变量
char *a1,*a2,*a3;
a1 = (char *)malloc(256);
if (a1 == NULL)
{
goto EXIT;
}
a2 = (char *)malloc(256);
如有错误,欢迎指正!!
本文讨论了在C语言中使用`malloc`进行动态内存分配时遇到的问题,特别是当结合`goto`语句使用时可能导致的内存泄漏。通过一个示例代码,作者指出在未正确初始化变量的情况下使用`goto`跳转可能导致内存未被释放。正确的做法是提前声明并检查每个分配的内存块,确保在必要时能够正确释放。这有助于提高代码的健壮性和防止资源浪费。
705

被折叠的 条评论
为什么被折叠?



