当前位置: 代码迷 >> C语言 >> 简单问题求助!请各位大侠不吝赐教!兄弟在此先谢了!
  详细解决方案

简单问题求助!请各位大侠不吝赐教!兄弟在此先谢了!

热度:392   发布时间:2005-12-03 21:32:00.0
简单问题求助!请各位大侠不吝赐教!兄弟在此先谢了!

请各位大侠帮忙看看下面这段程序哪地方有问题??

#define OK 0
#define ERR 1
#define ERROR (-1)
#define BUFFER_SIZE 256


int GetMemory(char **ppszBuf,int num)
{
if(NULL == ppszBuf)
{
ASSERT(0);
return ERROR;
}
*ppszBuf = (char*)malloc(num);
if(NULL == *ppszBuf)
{
return ERROR;
}
return OK;
}

void test(void)
{

char *pcStr =NULL;
if(OK ==GetMemory(&pcStr,BUFFER_SIZE))
{
scanf("%s",pcStr);
printf(pcStr);
free(pcStr);
}
return;

}

搜索更多相关的解决方案: 简单问题  兄弟  不吝  

----------------解决方案--------------------------------------------------------


#include <stdio.h>
#include <string.h>
#include <alloc.h>


#define OK 0
#define ERR 1
#define ERROR (-1)
#define BUFFER_SIZE 256
#define NULL 0
int GetMemory(char**ppszBuf,int num)
{
*ppszBuf=(char*)malloc(num*sizeof(char));
if(NULL==*ppszBuf)
{
return ERROR ;
}
return OK ;
}

void test(char**pcStr)
{


if(OK==GetMemory(pcStr,BUFFER_SIZE))
{
scanf("%s",*pcStr);
printf("%s",*pcStr);
free(*pcStr);
}
return ;

}

int main()
{
char*pcStr=NULL ;
test(&pcStr);
}


----------------解决方案--------------------------------------------------------
这道题是某公司的面试题,题目的要求是指出程序中不能出现预期结果的错误,若只是因为缺少main()函数的话,那这道题出得也太没水准了吧!?
----------------解决方案--------------------------------------------------------
我也没看出。
----------------解决方案--------------------------------------------------------
除非scanf("%s",pcStr);有越界行为

----------------解决方案--------------------------------------------------------
Sorry,忘掉了一句,程序假定BUFFER_SIZE足够大,不会导致越界
----------------解决方案--------------------------------------------------------
看不出,能改良的地方只有


if(OK ==GetMemory(&pcStr,BUFFER_SIZE))
{
scanf("%s",pcStr);
printf(pcStr);
free(pcStr);

pcStr=NULL;
}



----------------解决方案--------------------------------------------------------
多谢knocker兄!
----------------解决方案--------------------------------------------------------
噢?这个问题只会出现大的工程中,就这么几句给的提示也太少了一点了吧_^_
----------------解决方案--------------------------------------------------------
差距
----------------解决方案--------------------------------------------------------