我的代码如下:
char* int2str(int val);
void main(){
char *s = int2str(1001);
printf("----s=%s\n",s);
}
char* int2str(int val){
char turnStr[10];
sprintf(turnStr, "%d", val);
//printf("turnStr=%s\n",turnStr);
return turnStr;
}
上面的代码打印出空字符串,但是当我取消注释该行时:printf("turnStr=%s\n",turnStr)
它能够打印出正确的字符串。我知道函数结束时堆栈空间无法返回,但我对添加时感到困惑printf("turnStr=%s\n",turnStr)
,它可以打印出字符串。