我必須在函數中讀取更多元素P. 每次循環創建pElem會更好嗎?變量混淆
dataStr * process(char *start, char *stop, GTree* tree)
{
while ((cp != NULL) && (cp < nextI))
{
//I malloc inside of getPElem function
pElem * p = getPElem(cp, dateP, s);
free(p);
}
}
或者我應該更好地初始化P元素並且每次重用它?
dataStr * process(char *start, char *stop, GTree* tree)
{
pElem * p = malloc(sizeof(p));
while ((cp != NULL) && (cp < nextI))
{
fillPElem(p, cp, dateP, s);
}
free(p);
}
如果一個元素會更好,我應該MALLOC這一個功能(功能「進程」被稱爲在循環中太)以外:
dataStr * process(char *start, char *stop, GTree* tree, pElem * p)
{
while ((cp != NULL) && (cp < nextI))
{
fillPElem(p, cp, dateP, s);
}
}
還是喜歡在裏面的功能,每次第二個例子?
您發佈的兩個第一個片段應該是等效的嗎? – UmNyobe
對我來說,循環中的'malloc'不是非常優化的。如果你只是像緩衝區一樣使用它,你應該只做一個'malloc'。 – jml
是的,所有的片段應該是等效的。 – MaMu