大家讨论一下
如何我有一个文本,每行的数据格式为T或R开头的字符串,每行中T或R个数不确定 T=20090909.1200 T=20090910.1050(3) R=1.2:30 T=20080910.1050 R=0.2:3
.................................
.................................
T=20081010.1430 R=3.5:20 T=20090905.1050(6)
现在我想逐行提取数据,判断T开头的是绝对时间、R开头的是相对时间
因为每个字符串的长度都不同,想问一下我是直接用一个字符数组char ReadDate[25]去存放每个字符串,就是把每个字符串都分配25个字符长度好还是用char *ReadDate = new char[strOneProTime.GetLength()+1]去动态分配内存好!strOneProTime是我提取的一个完整的时间(比如T=20090909.1200或者R=0.2:3),是CString类型的另外注意的是: 我是用for循环去读每行的时间的,读到一个用一个,不知道如果在for循环里面用new的话会不会增大开销,而且由于需要,这个文本的所有内容,包括所有的行都是每1s是读一次。麻烦说一下什么情况下使用new动态分配,什么时候直接用固定的长度去存放字符串方便另,我用了new分配的时候,delete的时候提示出错,分析一下原因吧,谢谢
如何我有一个文本,每行的数据格式为T或R开头的字符串,每行中T或R个数不确定 T=20090909.1200 T=20090910.1050(3) R=1.2:30 T=20080910.1050 R=0.2:3
.................................
.................................
T=20081010.1430 R=3.5:20 T=20090905.1050(6)
现在我想逐行提取数据,判断T开头的是绝对时间、R开头的是相对时间
因为每个字符串的长度都不同,想问一下我是直接用一个字符数组char ReadDate[25]去存放每个字符串,就是把每个字符串都分配25个字符长度好还是用char *ReadDate = new char[strOneProTime.GetLength()+1]去动态分配内存好!strOneProTime是我提取的一个完整的时间(比如T=20090909.1200或者R=0.2:3),是CString类型的另外注意的是: 我是用for循环去读每行的时间的,读到一个用一个,不知道如果在for循环里面用new的话会不会增大开销,而且由于需要,这个文本的所有内容,包括所有的行都是每1s是读一次。麻烦说一下什么情况下使用new动态分配,什么时候直接用固定的长度去存放字符串方便另,我用了new分配的时候,delete的时候提示出错,分析一下原因吧,谢谢
解决方案 »
- 如何设置另存为对话框的位置
- 请问 resource.h 中 控件的ID值 大小范围?
- 哪错了啊!!各位帮帮哦!
- 如何在程序中设置静态文本的内容?
- 如何解析内存中的htm文件??
- 简单问题:如何取得HTTP头中的信息(90分给一人,其余大家分)
- VB 写的ActiveX中函数使用了Variant 参数,vc如何调用?
- 高手请进:怎样判断设备的状态DICS_DISABLE还是DICS_ENABLE?
- 触摸屏出来后,所有使用CHtmlView和webbrowser都应该注意的问题........请大家关注,望置顶
- 用IPicture从文件读一个BMP位图怎样把它存成JPEG或读一个JPEG把它存成BMP?
- NT device name 2 MS-DOS Device Names???
- MFC 对话框传数值的问题
我是用定时器实现1s读一次文本,目的是提取每行中的T和R的信息
strOneProTime是我从每行提取的一个具体的时间字符串,是CString类型的
现在我需要为这些具体的字符串分配空间,去提取具体时间中的每个信息
我现在问的是 为这些字符串分配空间时用new动态分配好还是把所有字符串看成25个字符的形式直接
char ReadDate[25]好
不用担心 不够放字符串
不用内存申请
数据多 而且每秒都要读取,用动态分配太浪费时间吧
应该没问题的,但是你要明确什么时候进行 delete操作,而且之后要把其指定为NULL不然,因为变量域作用导致指针变成了野指针,访问不存在的区域,就会出错。
内存分配不大但是操作频繁的话,用new效率不高,而且很多内存碎片
很支持skywoodsky的说法。
while()
{
CString m =read line;
m_list.AddTail(m);
}完全不必你自己来new和delete了。CList它全给你弄好了。