C语言中的转换错误无效

时间:2015-02-14 17:50:06

标签: c function struct

我有这个功能:

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变量数组。

1 个答案:

答案 0 :(得分:1)

变化:

p=delh(h, n, k);

为:

p=delh(h, &n, k);