gpt4 book ai didi

c - “下标值既不是数组也不是指针也不是 vector ”错误

转载 作者:太空宇宙 更新时间:2023-11-04 06:02:57 24 4
gpt4 key购买 nike

我读过关于类似问题的问题,但是2D动态 数组的问题在那里已经解决了。 (有指针,但我想在没有它们的情况下进行。)

#include <stdio.h>
#include <stdlib.h>

int interseq ( int, int ); // interval sequence

int main()
{
int arr[100] = { 75, 47, 64, 45, 67, 51, 55, 36, 63, 30,
39, 58, 55, 67, 70, 44, 46, 51, 51, 61,
50, 54, 49, 51, 52, 54, 64, 68, 45, 40,
48, 60, 55, 37, 36, 13, 62, 53, 37, 53,
52, 49, 37, 54, 69, 44, 53, 58, 77, 46,

44, 63, 57, 64, 28, 46, 50, 57, 42, 72,
12, 69, 52, 53, 77, 50, 45, 49, 49, 46,
28, 40, 65, 25, 45, 45, 62, 28, 39, 69,
52, 57, 39, 73, 37, 46, 38, 65, 49, 58,
63, 30, 51, 48, 47, 56, 48, 41, 30, 54 };

printf("%d", interseq ( arr, diagArr) );

return 0;
}

/* User's function. Description: 'farr' is 'arr' and so on.. */
int interseq ( int farr, int fdiagArr)
{
int min, i;

for ( i = 0; i < 100; i++ ) // Finding the 'min' element.
if ( farr[i+1] < farr[i] ) // there are 2 errors
min = farr[i]; // there is 1 error
else
min = farr[i+1]; // there is 1 error

return 1;
}

错误是一样的:

error: subscripted value is neither array nor pointer nor vector

最佳答案

将它们变成指针:

int interseq(int *farr, int *fdiagArr)
^ ^

我看不到您的代码中的 diagArr 是什么,所以那部分是推测。


正如 simonc 在评论中指出的那样,当 i = 99 时,farr[i+1] 将是非法的。您应该提前停止或更改您的算法。

关于c - “下标值既不是数组也不是指针也不是 vector ”错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15946456/

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