🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: pl.comp.lang.c
Article #581

Re: Lvalue required

#581
From: Jarek Kucypera
Date: Thu, 08 Jan 1998 14:35
40 lines
1673 bytes
Tomasz Cichacki <hermes@venus.wmid.edu.pl> napisał(a) w artykule 

> Gdzie jest blad?

> typedef struct dane
> {
>   char ind[5];
>   char imie[20];
> };
> dane d1;
> 
> //***************************
> // zapis danych do pliku
> //***************************
> 
> void main(void)
> {
>   char x[5] = "abcd"; // - Lvalue required
>   d1.ind = x;
> };


Błąd w tym, że w C(++) NIE MOŻNA stosować operatora podstawienia "=" do
całych tablic, więc także do stringów, które są tablicami znaków.
Do operacji na stringach służą funkcje zadeklarowane w pliku
nagłówkowym <string.h>.

Funckję main() można poprawić na dwa sposoby:

1)
main() {
char x[5] = {'a','b','c','d','\0'};            /* W C(++) MOŻNA inicjować tablice w momencie deklaracji */
strcpy(d1.ind,x); }

2)
main() { char x[5]; strcpy(x,"abcd"); strcpy(d1.ind,x); }

Postawienie, jak u Ciebie, po prawej stronie operatora "=" tablicy,
powoduje przekazanie ADRESU PIERWSZEGO ELEMENTU tej tablicy,
a więc w tym wypadku wskaźnika typu (char *).
Technical Details
Message-ID: <01bd1c42$76482220$2701070a@jark.insert.igo.wroc.pl>
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!ict.pwr.wroc.pl!gate-inet.insert.igo.wroc.pl!news
References: <690be3$rs8$3@sunsite.icm.edu.pl>

Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!news.icm.edu.pl!ict.pwr.wroc.pl!gate-inet.insert.igo.wroc.pl!news
From: "Jarek Kucypera" <jark@insert.com.pl>
Newsgroups: pl.comp.lang.c
Subject: Re: Lvalue required
Date: 8 Jan 1998 14:35:29 GMT
Organization: InsERT
Lines: 43
Distribution: world
Message-ID: <01bd1c42$76482220$2701070a@jark.insert.igo.wroc.pl>
References: <690be3$rs8$3@sunsite.icm.edu.pl>
NNTP-Posting-Host: r1-inet.insert.igo.wroc.pl
Mime-Version: 1.0
X-Newsreader: Microsoft Internet News 4.70.1161
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit