#include<stdio.h>
#include<stdlib.h>
#include<time.h>
typedef struct equipamento {
int codDipositivo;
char nomeEquipamento[40];
char newVar[50];
}Equipamento;
insert(int n, int cat, Equipamento eq[])
{
int codigo;
char newVar[40];
printf("\nNew Var: ");
scanf("%s",&newVar);
eq[n].codDipositivo=newVar;
}
main()
{
Equipamento equipamento[MAX_EQ_DSP];
...a bunch of scanfs
scanf("%d",&n);
scanf("%d",&pr);
insert(n, pr, equipamento);
}
这是我的样本。
主我有一堆scanfs,它会更新屏幕上显示的数据,但现在我想将这些数据传递到一个结构中,并要求提供更多信息。
我正在尝试使用更新的代码,但出于某种原因,而不是39个字符,它在第一个字符之后出现故障(返回主循环)
printf("\nNome do Equipamento: ");
gets(nome);
strcpy(eq[n].nomeEquipamento, nome);
答案 0 :(得分:1)
你的问题就在这一行:
eq[n].codDipositivo=newVar;
在C中,您无法分配数组,您需要将它们复制为元素元素。请记住,C没有字符串数据类型,字符串只是一个以NUL结尾的char数组。幸运的是,C库中有一个功能可以帮助我们strcpy
。
strcpy(eq[n].codDipositivo, newVar);
要获得strcpy
的声明,您需要在代码顶部添加以下内容:
#include <string.h>