我创建了一个只有1个成员的结构,我唯一想要的是:
我遇到的问题是我收到错误“从不兼容的指针类型传递updateDispCase的参数”。如果我尝试取消注释“// dispCaseAr [iNumber] - > StartTime = 10;”程序崩溃。
如何将我的结构传递给函数以及如何更新它?
我的代码如下所示:
#include <stdio.h>
#define NROFDISPCASE 4
typedef struct {
int nr;
double StartTime;
} DispCase;
DispCase dispCaseArray[NROFDISPCASE];
//Preprocessor
void updateDispCase(DispCase *dispCaseAr[],int);
//
int main(){
int i;
int value1[NROFDISPCASE]={1,2,3,4}; // Display nr.
//Initialize DisplayCase
for(i = 0; i<NROFDISPCASE; i++){
dispCaseArray[i].StartTime = value1[i];
}
updateDispCase(&dispCaseArray,0);
printf("%f\n",dispCaseArray[0].StartTime);
return 0;
}
void updateDispCase(DispCase *dispCaseAr[],int iNumber){
//dispCaseAr[iNumber]->StartTime = 10;
}
答案 0 :(得分:0)
我自己解决了这个问题,我认为写下问题的答案是个好主意。 我删除了&amp;从函数调用中删除函数中的方括号[]。新代码如下: 我忘了一个数组总是一个指针。
#include <stdio.h>
#define NROFDISPCASE 4
typedef struct {
int nr;
double StartTime;
} DispCase;
//Preprocessor
void updateDispCase(DispCase *dispCaseAr[],int);
//
int main(){
DispCase dispCaseArray[NROFDISPCASE];
int i;
int value1[NROFDISPCASE]={1,2,3,4}; // Display nr.
//Initialize DisplayCase
for(i = 0; i<NROFDISPCASE; i++){
dispCaseArray[i].StartTime = value1[i];
}
updateDispCase(dispCaseArray,0);
printf("%f\n",dispCaseArray[0].StartTime);
return 0;
}
void updateDispCase(DispCase *dispCaseAr,int iNumber){
dispCaseAr[iNumber]->StartTime = 10;
}