0
我目前的結構正確影響stuct指針的值
struct Protocol__ChecksumTable
{
ProtobufCMessage base;
uint32_t tableindex;
size_t n_entry;
Protocol__ChecksumEntry **entry;
};
struct Protocol__ChecksumEntry
{
ProtobufCMessage base;
uint32_t index;
uint32_t value;
};
現在我宣佈Protocol__ChecksumTable*
結構由函數填充它返回一個Protocol__ChecksumTable*
Protocol__ChecksumTable *
protocol__checksum_tables_response__unpack(void);
...
Protocol__ChecksumTable * checksumTablesResponse;
checksumTablesResponse = protocol__checksum_tables_response__unpack();
現在我想修改Protocol__ChecksumEntry
上的字段條目如下:
checksumTablesResponse->entry[0]->value = value;
返回的值不爲空,因爲我可以正確地記錄它:
for (index = 0; index < checksumTablesResponse->n_entry; index ++) {
LOG("checksumTablesResponse->entry[index]->value);
}
7值將顯示:
3054867360
3054867360
379899191
4128997118
3185498542
1736976844
2545413521
但隨後的程序崩潰!
有什麼問題?
** 1 **'checksumTablesResponse'是一個指針,是不是'NULL'? ** 2。**'(...) - > entry'是一個數組,它的大小是否至少爲1? ** 3。**'(...) - > entry [0]'是一個指針,它不是'NULL'嗎? –
是(不)你錯過了'typedef'的幾個,至少? –
@AndreKampling我更新了問題 – mikmak