gpt4 book ai didi

c - 在 C 中仅初始化二维数组的一行?

转载 作者:行者123 更新时间:2023-11-30 17:44:41 25 4
gpt4 key购买 nike

我有一个包含两行的数组,第一行包含最多 997 的所有素数。第二行在初始化时应包含全 0,因为稍后将通过 for 循环给它们赋予值。但是,当我按以下方式初始化数组时:

nt prime(int numfac[2][168], int num){
int j = 0, i = 0;
int numfac[][] = {
{2,3,5,7,1,13,17,19,
23,29,31,37,41,43,
47,53,59,61,67,71,
73,79,83,89,97,101,
103,107,109,113,127,
131,137,139,149,151,
157,163,167,173,179,
181,191,193,197,199,
211,223,227,229,233,
239,241,251,257,263,
269,271,277,281,283,
293,307,311,313,317,
331,337,347,349,353,
359,367,373,379,383,
389,397,401,409,419,
421,431,433,439,443,
449,457,461,463,467,
479,487,491,499,503,
509,521,523,541,547,
557,563,569,571,577,
587,593,599,601,607,
613,617,619,631,641,
643,647,653,659,661,
673,677,683,691,701,
709,719,727,733,739,
743,751,757,761,769,
773,787,797,809,811,
821,823,827,829,839,
853,857,859,863,877,
881,883,887,907,911,
919,929,937,941,947,
953,967,971,977,983,
991,997},
{0}
};

我的编译器返回:“数组类型具有不完整的元素类型”。

如何在 C 中只初始化二维数组的一行?预先感谢您。

最佳答案

您可以使用 for 循环来初始化一行中的 168 列。

例如。

int i;
for (i = 0; i < 168; i ++)
{
numfac[1][i] = 0;
}

需要注意的是,声明为 numfac[2][168] 的数组实际上包含元素 [0,1] 和 [0,1,2...167]。另外,如果不设置某个值,那么该值将为NULL,这会导致严重的误算。

关于c - 在 C 中仅初始化二维数组的一行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19886743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com