Invalid array assigment [RESOLVIDO]

1. Invalid array assigment [RESOLVIDO]

Guilherme José Schneider
gjschneider92

(usa openSUSE)

Enviado em 03/06/2011 - 12:00h

Bom dia pessoal tudo bem?
Estou desenvolvendo um script em C, que que coloca valores em uma matriz, porem, utilizando tbm uma struct.

Codigo:


#include <stdio.h>
#include <stdlib.h>

struct restaurante
{
char nome[100];
char endereco[100];
char tipoComida[100];
int preco;
};

main()
{
//int x[3][3];
struct restaurante x[3][3];
int linha, coluna;
char rest[100], end[100], tipoComida[100];
int preco;

for(linha=0;linha<=2;linha++)
{
for(coluna=0;coluna<=2;coluna++)
{
printf("Informe o nome do restaurante:");
gets(rest);
x[linha][coluna].nome = rest;

printf("Informe seu endereço:");
gets(end);
x[linha][coluna].endereco = end;

printf("Informe o tipo de comida:");
gets(tipoComida);
x[linha][coluna].tipoComida = tipoComida;


printf("Informe o preço:");
scanf("%d",&preco);
x[linha][coluna].preco = preco;

//x[linha][coluna] = y;
}
}

}

Porem na linha onde vou inserir ( ex. x[linha][coluna].nome = rest;), ja pesquisei mas nao consegui resolver o problema.

Alguem ja se deparou com este problema?

Desde ja agradeço.


  


2. MELHOR RESPOSTA

Marcelo A. B. Slomp
mslomp

(usa Slackware)

Enviado em 03/06/2011 - 13:54h

o problema nao esta na sua matriz, e sim na atribuicao de valores aos elementos internos da sua struct. vc nao pode atribuir valores diretamente ao *endereco* de um array de caracteres (nao sao l-value justamente para evitar que se tente sobrescrever sua posicao na memoria - por isso o erro), como nome[100] etc. para tanto vc deve usar algo como strcpy, que entao sim, ira copiar a sua "string" para o *conteudo* da cadeia de caracteres. por exemplo:
strcpy(x[linha][coluna].nome, rest);

desculpe a falta de acentuacao, teclado maluco :D

3. Re: Invalid array assigment [RESOLVIDO]

André
andrezc

(usa Debian)

Enviado em 03/06/2011 - 12:47h

Que problema? Seu tópico está extremamente vago. A que problema você se refere? Não consegue compilar? O compilador emite alguma mensagem de erro? Se sim, qual?


4. Re: Invalid array assigment [RESOLVIDO]

Guilherme José Schneider
gjschneider92

(usa openSUSE)

Enviado em 03/06/2011 - 13:05h

Quando vou compilar da a seguinte msg: invalid array assigment
nesta linha ( ex. x[linha][coluna].nome = rest;)


5. Re: Invalid array assigment [RESOLVIDO]

Guilherme José Schneider
gjschneider92

(usa openSUSE)

Enviado em 03/06/2011 - 14:08h

Muito obrigadao cara!!!
Funcionoo
Grande abrasss






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts