我有这个功能:
HOTEL* delh(HOTEL *h , int *n, int k)
{
int i;
HOTEL *p;
for(i=k; i<*n-1; i++)
{
h[i]= h[i+1];
}
p = (HOTEL *)realloc(h, (*n-1)*sizeof(*p) );
if (p==NULL)
{
return p;
}
*n = *n - 1;
return p;
}
酒店是一个结构。当我在main中调用此函数时出现错误:无效转换为'int'到'int *'|和错误:初始化'HOTEL * delh(HOTEL *,int *,int)'|的参数2。我是这样做的:
case 13:
printf("Enter position: ");
scanf("%d", &k);
p = delh(h, n, k); //here is the error
if (p == NULL)
{
puts("memory was not reallocated");
}
else
{
h = p;
}
getch( );
break;
在此之前我创建一个struct变量数组。
答案 0 :(得分:1)
变化:
p=delh(h, n, k);
为:
p=delh(h, &n, k);