这段程序为什么错 请详细说明

来源:百度知道 编辑:UC知道 时间:2024/05/29 04:08:54
void GetMemory(char *p, int num)
{
p = (char *)malloc(sizeof(char) * num);
}
void Test(void)
{
char *str = NULL;
GetMemory(str, 100); // str 仍然为 NULL
strcpy(str, "hello"); // 运行错误
}

出了函数,p的指向就丢失了,要把这个指向通过函数返回才行
改成这样应该就可以了:

#include <stdlib.h>
#include <string.h>

char* GetMemory(int num)
{
char *p = (char *)malloc(sizeof(char) * num);
return (p);
}
void main(void)
{
char *str = NULL;
str = GetMemory(100);
strcpy(str, "hello");
}

案例

涉及问题:对不当会计政策的忽视

涉及对象:重庆天健会计师事务所与三峡水利(600116)

三峡水利曾因原关联方重庆市万州电力开发有限公司资不抵债,且本年经营性资产已被拍卖,持续经营能力存在重大风险,在2003年度对其他应收款中应收移民迁建项目补偿资金11328.82万元按约80%比例计提坏账准备,令对应收预付电费款316万元和应收担保案赔偿款237万元全额计提坏账准备。

表面看来,以上减值准备的计提似乎在情理之中,但是仔细推敲一下,不由产生了一个疑问,如此大比例的减值准备为什么要在2003年度一次性计提呢?

经查验,公司此前一年度对坏账准备计提特别情况说明如下:公司对委托重庆市万州电力开发有限公司管理使用的公司移民资金7700万元未计提坏账准备;与此同时对关联方担保的说明如下:公司为第一大股东产业集团母公司电力总公司的控股子公司万州公司提供的担保本报告期已偿还4310万元,其担保余额总计12780万元,其中5220万元已逾期,目前万州公司已资不抵债,公司具有很大的或有负债风险。

考虑到三峡水利2002年净利润为821万元,假使对7700万元的其他应收款计提80%的减值准备,公司将发生巨额亏损。进一步说,鉴于2003年为实际亏损年度,公司将因为连续两年亏损而被交易所ST