我想分配一個函數內的結構數組。函數內的動態結構數組分配
我的結構如下:
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