i want to将一个数组、它的大小和指向内存中特定成员的指针接收到函数中,函数会检查指针是否指向数组中的某个成员,如果是,函数会打印数组中所有在发送地址之前的元素--不包括指针本身,如果不是函数将打印一个适当的消息。这是我试图做的,我有很多警告,我不知道如何修复
void printBeforeX(int* arr, int n, int* x);
int main(void)
{
int size = 11;
int offset = 0;
int arr[11] = { 4 ,8 ,6 ,2 ,1 ,3 ,5 ,7 ,8 ,9 ,5 };
printf("Please enter an offset to search in the array’s address domain");
scanf("%d", &offset);
getchar();
printBeforeX(arr, size, arr + offset);
getchar();
return 0;
}
void printBeforeX(int* arr, int n, int* x)
{
if (*x > n)
{
printf("Index %d is out of the array range",*x);
}
}
例如,对于索引51 m,期望输出::4 8 6 2 1和对于11我期待:瀑布按摩
1条答案
按热度按时间myzjeezk1#
C语言中检查
x
是否引用数组元素的唯一方法是遍历它并检查相等。这不是有效的,但这是标准允许的唯一方法。任何其他比较都会引发未定义的行为。https://godbolt.org/z/9hYMEfrfj