帮忙:为什么结构中的数据会改变呢?
我是这样定义的
struct Dlg_Static
{
char** prompt;
char** Rem;
int prompt_count;
};
Dlg_Static Create=
{Createfed,
Createfed1,
2
};
char* Createfed[]=
{"Execution Name",
"File Name"};
char* Createfed1[]=
{"Execution Name",
"File Name"};
我在第一次修改数据的时候,可以正常读取,可是就是在其他操作执行后就不行了,变成乱码
为什么呢,是不是该分配空间,结构类型的该怎么分配
问题点数:0、回复次数:6Top
1 楼lyclowlevel(蓬蒿人)回复于 2004-12-02 20:03:16 得分 0
整个程序都打出来看看!Top
2 楼hhygcy(小楼一夜听春雨)回复于 2004-12-02 20:45:54 得分 0
感觉好像你是个struct 总要分配空间的
不然"Execution Name",
"File Name"这些都是常量 没法获得地址的吧
Createfed只能随意指向一段内存了
所以看到乱码了Top
3 楼Zark(金陵五月)回复于 2004-12-03 00:41:35 得分 0
char* Createfed[]=
{"Execution Name",
"File Name"};
char* Createfed1[]=
{"Execution Name",
"File Name"};
这使得
Dlg_Static Create=
{Createfed,
Createfed1,
2
};
中的前两个成员拽指向了常量,因此应该是可读不可写.
可酌情改为
char Createfed[][]=
{"Execution Name",
"File Name"};
char Createfed1[][]=
{"Execution Name",
"File Name"};
但要注意变量的作用域.
Top
4 楼Zark(金陵五月)回复于 2004-12-03 00:45:04 得分 0
漏了一句,所有的更改都不得超过前一次的长度.
Top
5 楼cunsh(村少)回复于 2004-12-03 03:30:05 得分 0
改成这样如何?
char Createfed[][30]=
{"Execution Name",
"File Name"};
char Createfed1[][30]=
{"Execution Name",
"File Name"};
Top
6 楼imRainman(雨人)回复于 2004-12-03 07:37:21 得分 0
仅从楼主给出的部分来看,是没有问题的。
问题可能出在程序的其他地方。
还有,楼主说换了一个操作系统,那么也可能是这个操作系统的问题。
建议在这个操作系统下将程序重新编译一遍,试试看成不成。Top




