请分析下面代码,指出问题并改正:
请分析下面代码,指出问题并改正:voidGetMemory(T_S8*p,T_S16nNum){p=(T_S8*)malloc(sizeof(T_S8)*nNum);}v...
请分析下面代码,指出问题并改正:
void GetMemory(T_S8 *p, T_S16 nNum)
{
p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
}
void Test(void)
{
T_S8 *str = NULL;
GetMemory(str, 100);
strcpy(str, "hello");
} 展开
void GetMemory(T_S8 *p, T_S16 nNum)
{
p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
}
void Test(void)
{
T_S8 *str = NULL;
GetMemory(str, 100);
strcpy(str, "hello");
} 展开
3个回答
展开全部
程序崩溃.
因为 GetMemory
并不能传递动态内存,
Test 函数中的str 一直都是NULL。
strcpy(str, "hello"); 将使程序
崩溃。
修改:
T_S8 * GetMemory( T_S16 nNum)
{
T_S8 *p;
p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
return p;
}
void Test(void)
{
T_S8 *str = NULL;
str=GetMemory(100);
strcpy(str, "hello");
}
因为 GetMemory
并不能传递动态内存,
Test 函数中的str 一直都是NULL。
strcpy(str, "hello"); 将使程序
崩溃。
修改:
T_S8 * GetMemory( T_S16 nNum)
{
T_S8 *p;
p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
return p;
}
void Test(void)
{
T_S8 *str = NULL;
str=GetMemory(100);
strcpy(str, "hello");
}
上海楠贝
2024-04-15 广告
2024-04-15 广告
1.环境保护至关重要。企业必须关注其业务活动对环境的影响,比如碳排放、能源使用、废物管理和污染控制等。这不仅涉及遵守环境法规,更是关乎积极寻求改善和创新的态度,如投资清洁能源技术和实施可持续的资源管理策略。2.社会责任也是企业不可忽视的方面...
点击进入详情页
本回答由上海楠贝提供
展开全部
void GetMemory(T_S8 **p, T_S16 nNum)
{
*p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
}
void Test(void)
{
T_S8 *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
}
{
*p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
}
void Test(void)
{
T_S8 *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
void GetMemory(T_S8 **p, T_S16 nNum)
{
*p = (T_S8 *)malloc(sizeof(T_S8) * nNum);
}
void Test(void)
{
T_S8 *str = NULL;
GetMemory(&str, 100);
strcpy(str, "hello");
free(str);
}
二级指针
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询