請問 localtime() 為什麼不會造成 memory leak?
2016-04-08 09:14
302 查看
http://www.programmer-club.com.tw/ShowSameTitleN/vc/22380.html
***************************************************************************
以下是摘錄自 MSDN 的程式碼:
#include <time.h>
#include <stdio.h>
struct tm *newtime;
time_t aclock;
void main(
void )
{
time( &aclock ); /* Get time in seconds */
newtime = localtime( &aclock ); /* Convert time to struct
*/
/* tm form */
/* Print local time as
a string */
printf( "The current date and time are: %s", asctime( newtime ) );
}
小弟感到無比的好奇,
為什麼 localtime() 傳回一個很明顯的指標, 卻不用在檔案結尾的時候 delete
之?
而且還不會造成 memory leak....
或者是 "某個人" 替我在程式結尾時自動 delete 了? 可程式碼裡頭又沒有 >_<...
請各位大大解惑, Thanks.
2005/7/28 上午 04:46:43
你如果有看MSDN裡, localtime函數底下Remark那一段, 應該就不會有疑問了.
gmtime, mktime, localtime, 使用的都是一個固定的空間 (static), 因此無論你呼叫多少次, 傳回的位址都是相同的 (也就那塊固定空間的位址). 每次呼叫這三個函數之一, 就會破壞之前傳回位址指向的內容 (因為都是使用相同的空間). 既然是固定空間, 當然也就不用free了.
***************************************************************************
以下是摘錄自 MSDN 的程式碼:
#include <time.h>
#include <stdio.h>
struct tm *newtime;
time_t aclock;
void main(
void )
{
time( &aclock ); /* Get time in seconds */
newtime = localtime( &aclock ); /* Convert time to struct
*/
/* tm form */
/* Print local time as
a string */
printf( "The current date and time are: %s", asctime( newtime ) );
}
小弟感到無比的好奇,
為什麼 localtime() 傳回一個很明顯的指標, 卻不用在檔案結尾的時候 delete
之?
而且還不會造成 memory leak....
或者是 "某個人" 替我在程式結尾時自動 delete 了? 可程式碼裡頭又沒有 >_<...
請各位大大解惑, Thanks.
2005/7/28 上午 04:46:43
你如果有看MSDN裡, localtime函數底下Remark那一段, 應該就不會有疑問了.
gmtime, mktime, localtime, 使用的都是一個固定的空間 (static), 因此無論你呼叫多少次, 傳回的位址都是相同的 (也就那塊固定空間的位址). 每次呼叫這三個函數之一, 就會破壞之前傳回位址指向的內容 (因為都是使用相同的空間). 既然是固定空間, 當然也就不用free了.
相关文章推荐
- 封装好的Folyd建图,C++源码
- matlab与c/c++混合编程
- matlab与c/c++混合编程——c/c++调用matlab
- C/C++常用的调试宏
- VC内存泄露检查工具:VisualLeakDetector
- 内联函数总结
- usb体系结构
- VC结构体实现类似数组的下标操作符功能
- C/C++ 嵌套结构体动态内存管理实现
- C++调用gSoap编写的WEBSERVICE与C#.NET间接口自定义结构体不能重复使用
- 处理VC开发的webservice在C#.NET中中文乱码问题
- gcc使用入门
- C/C++ Linux 程序员必须了解的 10 个工具
- 递归遍历数组
- 用C/C++打印*号图案
- C++之四书五经(上)
- C++中const的使用
- *p++和*++p的区别
- C/C++输入读取数据函数总结
- 不可表示的数(庞果网)完全解答