请问这个会造成内存泄漏吗?
发布网友
发布时间:2023-11-20 06:43
我来回答
共2个回答
热心网友
时间:2024-04-09 05:49
会,我以注释的形式在你代码中写出吧:
int main(void)
{
ysl_1 = (char *)malloc(33 * sizeof(char));
if (ysl_1 == NULL)
{
puts("ysl_1 Error!");
return 1;
}
ysl_2 = (char *)malloc(33 * sizeof(char)); //如果这里分配失败
if (ysl_2 == NULL) //则return,但是ysl_1已经分配成功,却没free
{
puts("ysl_2 Error!");
return 1;
}
puts("Enter 1 text:");
gets(ysl_1);
puts("Enter 2 text:");
gets(ysl_2);
ysl_3 = ysl(ysl_1,ysl_2);
if (ysl_3 != NULL) //如果在上面一行的函数中内存分配失败,则ysl_1,ysl_2内存泄漏
{
printf("text1&text2:");
puts(ysl_3);
free(ysl_1);
free(ysl_2);
free(ysl_3);
}
else
printf("ysl_3 Error!");
puts("enter exit!");
getchar();
return 0;
}
热心网友
时间:2024-04-09 05:49
看不明白咯、、