首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

sprintf有关问题

2012-03-21 
sprintf问题大家好,请帮我看看下面这个函数哪里有问题(非语法),在线等!char*GetString(){charmyString[20]

sprintf问题
大家好,请帮我看看下面这个函数哪里有问题(非语法),在线等!
char*   GetString()
{
    char   myString[20];
    sprintf(myString, "hello   world. ");
    return   myString;
}

[解决办法]
没啥语法错误
不过你char string[]函数返回后就没有了
这个是问题
[解决办法]
char* GetString()
{
char *myString = (char*)malloc(20*sizeof(char)) ;
memset(myString,0,20);
sprintf(myString, "hello world. ");
return myString;
}

[解决办法]
楼主犯的错误在于,你返回了一个动态内存区域,而这块区域随着你函数的退出会发生变化,因此这样的错误是致命的!
[解决办法]
myString[20]是个临时变量,函数返回后就释放掉了.你要在外部用它就会出错的.

热点排行