我在使用size_t*
和uint32_t*
時遇到問題
我有一個程序
int main ()
{
size_t out_length;
.
.
.
func_1(param_1, ..., &out_length);
out_length > some_numberl;
}
func_1(param_1, ... , size_t *length)
{
.
.
.
*length = 0;
.
.
*length = to_some_unsigned_number;
}
因為它在main
中調用func_1();
可以正常工作,但是現在我必須在另一個類似這樣的函數中調用func_1();
func_2(param_1, ...,uint32_t* output_length)
{
}
所以程序現在看起來是這樣的
int main ()
{
size_t out_length;
.
.
.
func_2(param_1, ..., &out_length);
out_length > some_number;
}
func_2(param_1, ...,uint32_t* output_length)
{
func_1(param_1, ... ,output_length);
//stuff
}
func_1(param_1, ... , size_t *length)
{
.
.
.
*length = 0;
.
.
*length = to_some_unsigned_number;
}
所以我的問題是如何適當地獲得output_length
的值。我現在讀0s。
如果有人能給我指出正確的方向,我將不勝感激。
不能將
f1
返回的size_t
值直接存儲到f2
參數指向的uint32_t
變量中,因為類型不同,大小也可能不同。相反,在f2
中使用一個中間局部變量,這也給了測試超出范圍條件的機會。對于f2
返回到main
的uint32_t
值也是如此,只是方向相反。