c - C语言无效转换错误

标签 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;
}

其中 Hotel 是一个结构体。当我在 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;

在此之前,我创建一个结构变量数组。

最佳答案

更改:

p=delh(h, n, k);

至:

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

关于c - C语言无效转换错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28518414/

相关文章:

c++ - 为什么一个常量函数返回的volatile类型可以是常量?

c - 为什么我可以在 32 位而不是 64 位编译它?

c++ - 使用数组的段错误

php/mysql搜索功能问题

c - 如何创建结构的新实例

c - 具有包含 char * 的结构类型的 out 参数的公共(public) API 设计

c - C语言中的键值对

将一个 char 数组复制到另一个 char 数组数组

用 c 中的数组构造我自己的 strcat 函数

c++ - 如何使用 Struct 打印我的交换函数