C编程:参数:无法转换为int *

时间:2019-11-24 06:19:39

标签: c arrays merge

我是新来的,我有一个问题。

我正在做有关过程和结构的C编程作业。

所以我想声明一个Struct数组,然后将其作为别名。这是代码:

typedef struct Mahasiswa
{
    int NIM;    
    char NamaMhs[16];
    char KodeMK[6];
    char Nilai;
}TabMhs[100];
TabMhs M; //Alias

我想将此结构用作另一个过程的参数:

这是步骤:

void SortDataMhs(struct Mahasiswa M[Nmaks],int n);

这是过程调用:

SortDataMhs(&M,n);

但是我得到一个错误: [错误]无法将参数'1''void SortDataMhs(Mahasiswa *,int)'的'Mahasiswa()] [100]'转换为'Mahasiswa '

有帮助吗?很抱歉提出这样的新手问题。因为我是编程新手:)

1 个答案:

答案 0 :(得分:1)

此结构数组的声明,即:

credits

不是一个好习惯。您可以详细了解here

现在,以下代码更具可读性和可读性:

NSApplication.AboutPanelOptionKey

但是明天说您的结构数组需要多于(或少于)100个元素,在这种情况下,您可以通过删除语句TabMhs m [100]并将其替换为该数组来使该数组动态化:

typedef struct Mahasiswa
{
    int NIM;    
    char NamaMhs[16];
    char KodeMK[6];
    char Nilai;
}TabMhs[100];
TabMhs M; //Alias