读书人

String不可以赋值吗?该怎么解决

发布时间: 2012-02-16 21:30:36 作者: rapoo

String不可以赋值吗??
void __fastcall TForm2::okbuttonClick(TObject *Sender)
{
String ttt;
ttt= "123 ";
puNow-> FileName=ttt;
}
我在一个按钮写上这代功能;
是想把puNow-> FileName重写赋值,但怎么会出现内存错误呢?


puNow的指针结构体:
typedef struct UFD //普通文件的目录项
{
String FileName; //文件名
int type; //文件类型,0为只读,1为可读可写
int len; //文件长度
int FolderFlag; //看是否是文件夹,当为1是文件
struct UFD *next;
struct MFD *nextMChild; //文件夹链表
struct FCB *nextchild;
}UFDNode,*UFDLink;

[解决办法]
建议用 char[100] 之类的描述
链表内存为连续固定字节内存,而 String 类型是一个可变对象
[解决办法]
puNow-> FileName=ttt;

很有可能你只是定义的指针,所以不能赋值
[解决办法]
是不是puNow没实例化
[解决办法]
puNow的内存分配了码?把错误信息贴出来
[解决办法]
是呀,加一句实例化
puNow = new UFD;

[解决办法]
什么错误?
[解决办法]
八成是没分配内存指向野指针了

读书人网 >C++ Builder

热点推荐