读书人

sprintf有关问题

发布时间: 2012-03-21 13:33:15 作者: rapoo

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]是个临时变量,函数返回后就释放掉了.你要在外部用它就会出错的.

读书人网 >C语言

热点推荐