我有一个情况
int main()
{
if(some_condition)
{
//some code
}
else
{
char *a[] = { "","",...};
char b[size] = {};
}
if(some_other_condition)
{
// some code
}
else
{
char *a[] = { "","",...};
char b[size1] = {};
}
}
所以我的问题是
我需要指针数组和整数数组,如上所示,并且在我的函数中有多个这样的 if()else
情况。那么实现这一目标的更好方法是什么?截至目前,我已将我的阵列放在需要的地方,如上所示。
另一种选择是将所有内容放在函数的开头并在需要时使用它们。
int main()
{
char *a[some_big_size];
char b[size_big];
if()
{
//some_code
}
else
{
for(i=0;i<n;i++)
{
a[i] = malloc(len);
strlcpy(a[i],"string",len);
}
for(i=0;i<n;i++)
{
b[i] = val;
}
}
}
请让我知道我应该选择以上两个选项中的哪一个?我了解到在需要时声明变量
,所以我想知道你们的想法。
或
是否有不同的方法可以共同实现这一目标?
最佳答案
我相信您的第一个代码示例更好。声明自定义大小的数组将帮助您比声明一个单一的通用数组更容易捕获越界错误。一个小好处是您只在真正需要时才分配内存,但您的数组必须非常大才能做到这一点。
关于c - 在哪里声明我的数组,哪种方法更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29002363/