【发布时间】:2020-09-08 02:20:07
【问题描述】:
我试图制作一个简单的函数来制作一组用户输入的数字,使用指针的指针,但我不断收到此错误,并且很难判断问题出在哪里,如果有任何其他选项可以使用某些东西else 告诉我问题出在哪里,而不是这个奇怪的错误。
#include <stdio.h>
void BuildGroub(int** group,int* count){
int i=0;
int j;
printf("Enter the size of the group \n");
scanf("%d", &*count);
while(*count != 0){
printf("Enter the %d number of the group:\n", i);
j=0;
scanf("%d", &**(group+i));
while(**(group+i)!=**(group+j)){
j++;
}
if(j==i){
i++;
count--;
} else{
printf("you have already entered this number please try again: \n");
}
}
}
int main(){
int count;
int group[100];
int *groupptr = &group;
BuildGroub(&groupptr,&count);
for(int i=0;i<count;i++){
printf("%d, ", group[i]);
}
return 0;
}
【问题讨论】:
-
@FiddlingBits 抱歉
-
你不需要双指针。数组的名称是第一个元素的地址。它是一个地址。您只需将
groupptr传递给您的函数,将其定义为接收int*,而不是int**。抱歉,但我不明白您在获得每个号码后要做什么。 -
@SuperG280 我知道它只是尝试使用双指针我并没有真正了解多个指针的工作原理,我什至没有看到这段代码导致核心转储的问题跨度>
-
@SuperG280 什么都只打印我得到的东西,它唯一检查我之前是否已经输入过数字,所以它打印不同的数字