我想分配一个函数内的结构数组。函数内的动态结构数组分配
我的结构如下:
typedef struct{
uint16_t taskNumber;
uint16_t taskType;
double lat;
double lon;
double speed;
uint8_t successCriteria;
uint16_t successValue;
uint8_t nextPoint;
}missionPoint;
在我的代码,我宣布一个missionPoint指针,然后我进入那个解析文件,并找出它需要多大后会动态地分配它的功能是。 目前,这是我的代码的外观:然后
missionPoint* mission; //declaring the pointer
parseMission(mission);
的parseMission功能将解析一个特定的文件,并找出有多少missionPoints需要,然后将下面的方式来分配它:
mission = (missionPoint*) malloc(n * sizeof(missionPoint));
其中n是我需要的解析的任务点数。
问题是,在函数内我可以看到正确的值,但不在它之外;一旦函数返回,它就像没有发生。
我将不胜感激您的帮助,使功能修改原来的指针,我可以看到功能外的数据。
您应该对结构进行重新排序,以便它正确对齐。一个简单的方法就是按大小顺序排列成员。或者你可以在第一个两个之后将第三个'uint16_t'移动到右边,然后在这之后再移动两个'uint8_t'。 – 2011-06-14 22:15:49