我有這需要一個結構作爲參數,像一個函數:局部結構和指針
add_new_structure(structure s);
然後將其存儲內部 structure structure_list[200];
問題:
1.當我想要使用結構,我有一個功能,如
structure *getStructure(int id)
{
return &structure_list[id];
}
是要去工作,如果我加一個結構是這樣的:
void init()
{
structure test;
memset(&test,0,sizeof(structure));
add_new_structure(test);
}
,然後從另一個函數調用getStructure?像這樣:
void anotherFunction()
{
structure *got_test = getStructure(0);
}
因爲我記得我不能有局部變量,然後從另一個函數調用它嗎?
2.是否更好地存儲它像這樣?
更改add_new_structure() parameter to structure *s
;
然後通過調用add_new_structure(& test)將其存儲在 structure *structure_list[200];
中;
3.哪一個更好?或者什麼是正確的做法?
'structure_list'是否有靜態存儲時間?你可能想要發佈'add_new_structure()'和'struct'的定義。如果'struct'有任何指針,那麼僅僅複製它們可能是危險的。 – hmjd
是的,它有一長串的結構成員,包含字符指針,所以如何安全地將它們存儲在數組中?什麼是靜態存儲時間? – steave
靜態存儲持續時間意味着該程序的生命週期持續(請參閱http://stackoverflow.com/questions/95890/what-is-a-variables-linkage-and-storage-specifier)。 – hmjd