none
access violation问题 RRS feed

  • 问题

  • 我的这一句程序运行抛出异常了
     printf( "Current time is %s\n", asctime(when) );  //struct tm *when
    vs自动把调式点定位在output.c文件里,可见应不是asctime调用问题。
    查看asctime函数原型,发现其返回char *类型指针。
    问题:asctime以及其他C函数库中的一些返回字串指针的函数内部如何实现字串?
    若是定长数组,那么函数返回时应该自动销毁了,肯定不行?
    若是动态分配,那么要由我们手动删除其返回值。而在msdn示例中没有发现这样语句。而且如printf("%s", asctime())这样肯定无法释放动态内存,因为返回值为临时变量,而这样句子也是msdn中有的。
    是msdn错了,还是该函数有更高明的实现方法既能得到返回字串,又能防止内存泄漏?
    2009年10月2日 14:39

答案