gpt4 book ai didi

c - 函数正在添加到数组的二维而不是一维 C

转载 作者:行者123 更新时间:2023-11-30 18:39:55 25 4
gpt4 key购买 nike

当我尝试将变量保存到二维数组时,它会将其保存为二维 [0] [1] 而不是一维。

例如:

  • dodajDoKolejki(1,1)//将数字 1 添加到维度 1

  • priting 数组给出了如下所示的结果,但它不应该改变 kolejka[0]

    kolejka[0] = 0 0 1 0 0 0 0 0 0 
    kolejka[1] = 1 0 0 0 0 0 0 0 0
<小时/>
int (*kolejka)[2]; // Global variable
...
int queue[2][ilSamochodow+1];
kolejka = &queue;
...

void dodajDoKolejki(int numerWatku,int miasto)
//Adding numbers from 1-... to random dimensions (given as miasto)
{
//Checking if number already exists( int istnieje ) in array
int istnieje = 0;
int i;
for(i=0;i<ilSamochodow+1;i++)
{
if(kolejka[miasto][i] == numerWatku)
istnieje = 1;
}

if(istnieje == 0)
{
//Looking for 0 in array, if found we can save on its index( == 0)
i = 0; // Indeks miejsca, w ktorym zapiszemy numerWatku
while(kolejka[miasto][i] != 0)
i++;

kolejka[miasto][i] = numerWatku;
printf("\nDodano %d do kolejki miasta %d",numerWatku,miasto);
wypiszKolejke2(miasto);
}
else
printf("\nBlad. Nie mozna dodac, poniewaz watek jest w kolejce!");
}

最佳答案

您的 kolejka 变量的维度和赋值不正确。应该是:

int (*kolejka)[ilSamochodow+1]; // Global variable
int queue[2][ilSamochodow+1];
kolejka = queue;

基于您尝试使用它的方式。 queue 是一个指向 ilSamochodow+1 int 数组的指针数组。因此,要声明一个与队列兼容的指针,您需要声明一个指向数组的指针ilSamochodow+1 个整数。

关于c - 函数正在添加到数组的二维而不是一维 C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28118589/

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