在C

时间:2017-08-23 06:13:41

标签: c

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 []?我想我很顽固,我只是不明白必须分配一个指针。

0 个答案:

没有答案