首页 > 解决方案 > 如何在c中的结构内为结构数组赋值?

问题描述

所以我需要将扫描的值分配给变量palovalor哪些属于cartas哪个是结构,而这个在另一个结构内?

这是我到目前为止所得到的,我收到一个错误“必须具有指向对象类型的指针”:

#include <stdio.h>
#define DIM 100

typedef struct{
    char palo;
    int  valor;
}t_carta;

typedef struct{
    int ncartas;
    t_carta cartas[DIM];
}t_baraja;

int main(){
    t_baraja b1;
    t_carta carta[DIM][DIM];

    printf("Cuantas cartas tiene su baraja? ");
    scanf("%d", &b1.ncartas);
    printf("Introduzca las cartas separadas por guiones (o4-e10-b1...):\n");
    for(int i=0; i<b1.ncartas; i++){
        scanf("%c%d%*c", &b1.cartas->palo, &b1.cartas->valor);
        b1.cartas[i][i]=b1.cartas->valor;
    }

    return 0;
}```

标签: arrayscstructvariable-assignment

解决方案


提供的代码没有意义,但回答您的问题

如何在c中的结构内为结构数组赋值?

我将解释如何做到这一点。

如果你有一个对象声明为

t_baraja b1;

然后设置其数据成员数组的数据成员

 t_carta cartas[DIM];

你可以通过以下方式

b1.cartas[i].palo; = some_value;
b1.cartas[i]valor = another_value;.

其中i是选择数据成员数组中元素的索引cartas


推荐阅读