所以这是我的代码:
#include <stdio.h>
#include <stdlib.h>
//funkcija dodavanja u red
void add(cvor* red, int i, cvor broj){ //Errors appear in this line
red[i] = broj;
}
// brise iz vadi iz reda clan koji je prvi usao
cvor delete(cvor *red, int i){
cvor a;
int e;
a = red[0];
for (e = 1; e < i;e+=1){
red[e - 1] = red[e];
}
return a;
}
//definiticja strukture cvora
typedef struct temp{
double info;
struct temp* levi;
struct temp* desni;
}cvor;
// pravljenje novog cvora
cvor *novi_cvor(cvor *levi_sin,cvor *desni_sin,double broj){
cvor *novi = malloc(sizeof(cvor));
novi->levi = levi_sin;
novi->desni = desni_sin;
novi->info = broj;
return novi;
}
void main(){
int i=0,e,n;
cvor *red;
double broj;
// definisanje reda kao dinamcikog niza
red = calloc(50, sizeof(cvor));
// u red unosimo clanove liste redom
printf("Uneti broj clanova liste");
scanf_s("%d", &n);
while (n>0){
scanf_s("%lf", &broj);
add(red, i, *novi_cvor(NULL,NULL,broj));
i += 1;
n -= 1;
}
//ispis reda
for (e = 0; e < i; e += 1){
printf("%2.lf\n\n", red[e]);
}
system("pause");
}
这些是错误:
Error 1 error C2143: syntax error : missing ')' before '*'
Error 2 error C2143: syntax error : missing '{' before '*'
Error 3 error C2059: syntax error : 'type'
Error 4 error C2059: syntax error : ')'
所有这些都出现在第4行。
任何解决方案? 感谢
答案 0 :(得分:3)
如果要在另一种方法中使用struct,typedef或方法,则必须声明它或编写它们的代码。 这意味着当你在main中调用你的函数delete时,它没有检测到cvor的意思,因为cvor定义如下。
把
typedef struct temp{
double info;
struct temp* levi;
struct temp* desni;
}cvor;
在第一行,在休息之前。