Isso nao funciona? [RESOLVIDO]

1. Isso nao funciona? [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 16/04/2013 - 15:36h

#include <stdio.h>
#include <conio.h>
#include <string.h>

#define MAX 10

struct TpPessoa{
char nome[MAX];
int priority;
};

struct TpFila{
int pos;
struct TpPessoa fila[MAX];
};

void inicia_fila(struct TpFila &r){
r.pos=-1;
}
int fim_fila(struct TpFila r){
if(r.pos==MAX-1)
return 0;
else
return 1;
}
void inserir_fila(struct TpFila r, char aux[MAX]){
r.fila[++r.pos].nome=aux; // essa linha da esse erro (incompatible types in assignment of `char*'to`char[10]')

}


  


2. Re: Isso nao funciona? [RESOLVIDO]

Paulo
paulo1205

(usa Ubuntu)

Enviado em 17/04/2013 - 00:01h

C não tem um tipo strings bem definido, como têm outras linguagens. Você trabalha com arrays de caracteres e ponteiros para elementos desses arrays.

No seu exemplo, você tentou alterar uma string fazendo atribuição ao array. Só que isso não funciona em C porque arrays não são variáveis, mas endereços constantes que apontam para o primeiro elemento armazenado. O que você pode fazer é modificar os elementos do array um a um, ou modificá-los sequencialmente. No caso de arrays de caracteres representando strings, existem funções como strncpy() e congêneres.


3. Re: Isso nao funciona? [RESOLVIDO]

???
gokernel

(usa Linux Mint)

Enviado em 17/04/2013 - 10:18h


Uma forma mais evoluida seria tipo isso abaixo:



struct TpPessoa {
char *nome; // usando ponteiro ...
int priority;
};

struct TpFila {
int pos;
struct TpPessoa *fila [MAX];
};



OBS: percebo que isso é um trabalho de faculdade, e acredito que o seu instrutor irá informar métodos de dados melhores no futuro ... isso foi só para lhe adiantar o futuro.



4. Re: Isso nao funciona? [RESOLVIDO]

Rafael Alves Lagisck
lagisck

(usa Debian)

Enviado em 19/04/2013 - 20:59h

Valew galera!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts