struct mercadoria {
int codigo;
char *nome;
int qtd;
float valor;
};
struct mercadoria supermercado[5];
我想用FOR循环填充数组supermercado []。
这是一些包含codigo,nome和valor元素的数组:
char *nomes [5] = {"limao\0", "abacate\0", "chiclete\0", "bolacha\0", "peixe\0"};
int codes [5] = {15, 13, 17, 19, 3};
float values [5] = {3.99, 2.99, 1.99, 4.44, 9.49};
以下是我一直在尝试的内容:
for (int i = 4; i >= 0; i -= 1) {
supermercado[i].codigo = codes[i];
strcpy(supermercado[i].nome, nomes[i]);
supermercado[i].qtd = (i+1);
supermercado[i].valor = values[i];
printf("\n ########## \n");
printf("\n supermercado[%d].nome: %s", i, supermercado[i].nome);
printf("\n supermercado[%d].codigo: %d", i, supermercado[i].codigo);
printf("\n supermercado[%d].qtd: %d", i, supermercado[i].qtd);
printf("\n supermercado[%d].valor: %.2f", i, supermercado[i].valor);
printf("\n ########## \n");
}
我能够编译它,但它不会打印任何东西。只是“分段错误”。
我是C编程的新手,在这里很无能......
修改 我测试了这段代码,并准确地打印出来的内容:
printf("%s", nomes[1]);
printf("\n%d", codes[1]);
如果我可以打印他们的值为什么我不能将它们复制到数组supermercado []?我想我很顽固,我只是不明白必须分配一个指针。