【问题标题】:Invalid conversion error in C languageC语言中的无效转换错误
【发布时间】:2015-02-14 17:50:05
【问题描述】:

我有这个功能:

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;

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

【问题讨论】:

  • 编译器显然无法读取你的代码,因为缩进太可怕了。
  • 在前面看起来 n 是 int n; 而你需要传递的是 delh(h, &amp;n, k);
  • initializing argument 2..似乎很明显。你能交叉检查一下吗?

标签: c function struct


【解决方案1】:

变化:

p=delh(h, n, k);

到:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-07
    • 2018-02-08
    • 2012-11-05
    • 2017-03-26
    • 2015-01-06
    • 2014-08-07
    相关资源
    最近更新 更多