Передача элемента массива char в другую позицию - PullRequest
0 голосов
/ 28 декабря 2018

Итак, у меня есть структура со следующими элементами:

typedef struct loja{
    int numero;
    char nome[MAX];
    float area;
    float faturacao[12];
} Loja[N];

Я объявил массив vetC [] для структуры, и мой следующий шаг заключался в устранении позиции этого массива

int EliminarComum(int c,Loja vetC[]){    
    int posicao, i,a;  

    posicao = MostrarComum(c,vetC);  ///only for the user to choose the position he wishes to eliminate.
    if (posicao > c)  
        printf("can't delete.\n");  

    else {  
        for (i = posicao - 1; i < c - 1; i++){  
            vetC[i]->numero = vetC[i+1]->numero;  
            vetC[i]->nome = vetC[i+1]->nome;  
            vetC[i]->area = vetC[i+1]->area;  
            for(a=0;a<12;a++)  
                vetC[i]->faturacao[a] = vetC[i+1]->faturacao[a];  
            c--;  
        }  
    }  
    return c;  
}  

и в строке vetC[i]->nome = vetC[i+1]->nome; выдает ошибку

ошибка : присваивание выражению с типом массива

1 Ответ

0 голосов
/ 28 декабря 2018

Вы не можете назначать массивы, но вы можете назначить полные struct loja -объекты:

vetC[i] = vetC[i+1];

Преобразовать, например, следующую простую программу, которая иллюстрирует, как работает назначение struct-objects, в то время какне удается присвоить массив символов:

struct testStruct {

    int x;
    char str[10];
};

int main() {

    struct testStruct t1 = { 10, "Hello" };
    struct testStruct t2;

    t2 = t1;  // legal.

    char str1[10] = "Hello";
    char str2[10];

    // str2 = str1;  // illegal; arrays cannot be assigned.

    strcpy(str2,str1);  // legal (as long as str1 is a valid string)
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...