首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

小弟我晕,遇到怪事了,字符串赋值居然不对,大家帮忙看看

2012-03-23 
我晕,遇到怪事了,字符串赋值居然不对,大家帮忙看看PUrlRecord^TurlrecordTUrlRecordrecordURL:stringe

我晕,遇到怪事了,字符串赋值居然不对,大家帮忙看看
PUrlRecord=^Turlrecord;
    TUrlRecord   =   record
        URL:   string;
    end;

    var
      paramt:Purlrecord;

                    ustr:=SourcePageLIst.Names[n];
                    GetMem(Paramt,Length(ustr));
                    Paramt^.URL:=ustr;

      就是这段代码,是在一个循环里的,当执行到第一行时,绝大多数时候都是对的,但每次循环中就有一两次跟踪时   ustr和SourcePageLIst.Names[n]   居然不同SourcePageLIst是一个Tstringlist,绝大多数时候是SourcePageLIst.Names[n]赋值给ustr时,里面的‘.’被替换成了‘-’,并且Getmem有时候不能给Paramt分配内存,执行到Paramt^.URL:=ustr   时提示错误。



[解决办法]
分配记录类型的指针内存时,因为记录类型的大小是已知,动态内存操作这样使用更好:

new();//分配内存

dispose();//回收内存

PUrlRecord=^Turlrecord;
TUrlRecord = record
URL: string;
end;

var
paramt:Purlrecord;

ustr:=SourcePageLIst.Names[n];
new(paramt);
Paramt^.URL:=ustr;

热点排行