【发布时间】:2014-02-06 18:10:11
【问题描述】:
我在尝试编译以下代码时遇到了问题:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct Aposta{
char apostador[100];
char time1[100];
char time2[100];
char time3[100];
}Apostas;
typedef struct Jogos{
char time1[100];
int gol1;
char time2[100];
int gol2;
int faltas;
int amarelo;
int vermelho;
}Jogo;
typedef struct Times{
char time[100];
}Time;
typedef struct Tbela{
char time[100];
int pontos;
int ngole;
int ngols;
}Tabela;
Tabela *ptTabela(Time *time, Jogo *jogo, int tamt, int tamj){
int i=0;
Tabela *tabela;
tabela = (Tabela *)malloc((tamt)*(sizeof(Tabela)));
while (i < tamt){
tabela[i].pontos = 0;
tabela[i].ngole = 0;
tabela[i].ngols = 0;
int l;
for (l=0; l < tamj; l++){
if(!(strcmp(time[i].time, jogo[l].time1 ))){
tabela[i].time = jogo[l].time1;
if(jogo[l].gol1 > jogo[l].gol2){
tabela[i].pontos = (tabela[i].pontos + 3);
}
if(jogo[l].gol1 = jogo[l].gol2){
tabela[i].pontos = (tabela[i].pontos + 1);
}
tabela[i].ngole = tabela[i].ngole + jogo[l].gol1;
tabela[i].ngols = tabela[i].ngols + jogo[l].gol2;
}
else if(!(strcmp(time[i].time, jogo[l].time2 ))){
tabela[i].time = jogo[l].time2;
if(jogo[l].gol2 > jogo[l].gol1){
tabela[i].pontos = (tabela[i].pontos + 3);
}
if(jogo[l].gol1 = jogo[l].gol2){
tabela[i].pontos = (tabela[i].pontos + 1);
}
tabela[i].ngole = tabela[i].ngole + jogo[l].gol2;
tabela[i].ngols = tabela[i].ngols + jogo[l].gol1;
}
else{
printf("Time %s not found.", time[i].time);
}
}
}
i++;
}
编译器说:
我真的不知道它有什么问题,对我来说,它只是应该获取jogo[l].time1内部的字符串并将其复制到tabela[i].time。而且看起来它们是完全相同的类型。
我正在使用 netbeans 7.2。
感谢您的耐心等待。如果有不清楚的地方,请告诉我,我会尽快改正。
【问题讨论】:
-
你不能像这样分配数组的内容。使用其中一种复制功能。
标签: c pointers netbeans struct