tplink885n怎么设置:c++结构问题?

来源:百度文库 编辑:高考问答 时间:2024/05/02 23:58:17
#include<iostream.h>
main()
{
//定义一个包含指针成员的结构类型
struct test {
char *str;
int *ip;
} ;
test y={"Very Good!", NULL};
*(y.str)="dsfsfs"; //<-调试时这里有问题,y.str为什么不能改?
cout<<"y.str:"<<y.str<<endl;
cout<<"y.ip:"<<y.ip<<endl;
}

请注意:struct test {
char *str;
int *ip;
} ;里的str是一个指针,而且是没有分配内存的指针
请使用
y.str=new char[255];来分配内存
另外
*(y.str)="dsfsfs";是非常危险的,因为"dsfsfs"是一个常量,在编译时被分配固定内存空间,你这样将一个固定内存地址赋值给一个在堆栈上的地址将造成无法回收,内存泄露,应使用strcopy

字符串赋值时,要为字符串分配足够的空间,再用strcpy赋值,不能直接就修改指针指向的空间。

能改它是STR指针的变值改成什么都行