Linux-Bulgaria.ORG
навигация

 

начало

пощенски списък

архив на групата

семинари ...

документи

как да ...

 

 

Предишно писмо Следващо писмо Предишно по тема Следващо по тема По Дата По тема (thread)

Re: lug-bg: [OT] sym++ [Was: gcc str[i]=''; ?!.]


  • Subject: Re: lug-bg: [OT] sym++ [Was: gcc str[i]=''; ?!.]
  • From: Peter Pentchev <roam@xxxxxxxxxxx>
  • Date: Tue, 15 Jun 2004 17:02:33 +0300

On Tue, Jun 15, 2004 at 04:42:05PM +0300, Andrey Andreev wrote:
> Peter Pentchev wrote:
> 
> >Май в оригиналния пример str беше масив, не указател :)
> 
> Името на масива е указател към началото му. str[2] е синоним на (str+2)*

Мда, а ще ми намериш ли компилатор, който при декларация char str[255] да
позволява str++, което ти беше написал (и сега снипна) и срещу което аз
всъщност възразих? :)

> >>Е, разбира се, не може да се каже че това е добър стил, а и оставяме 
> >>празно място, но е по-бързо. 8)
> >
> >
> >И какво правим после, когато се опитаме да направим free(sym)? ;)
> 
> sym[] е алокирано статично - като локална променлива (т.е. в стека). Не 
> можеш да му направиш free. Т.е. можеш, но най-вероятно ще получиш 
> segfault или друга подобна красота. free е само за работи алокирани с 
> malloc, calloc или realloc (функциите за работа с heap-а)

...и ако е алокиран статично (като char sym[255], а не char *sym), не
можеш да направиш sym++... а ако можеш да направиш sym++, то sym не е
алокиран статично, и значи или сочи към нещо, което *на друго място* е
алокирано статично, или сочи към динамично заделена памет... в който
случай, ако направиш sym++ и по-късно се опиташ да я освободиш, резилтатът
ще е много подобен на неща, които виждаме в последната година в BugTraq :)

Но Дончо май е прав, че това е малко или повече (май повече) off-topic.

Поздрави,
Петър

-- 
Peter Pentchev	roam@xxxxxxxxxxx    roam@xxxxxxxx    roam@xxxxxxxxxxx
PGP key:	http://people.FreeBSD.org/~roam/roam.key.asc
Key fingerprint	FDBA FD79 C26F 3C51 C95E  DF9E ED18 B68D 1619 4553
No language can express every thought unambiguously, least of all this one.

Attachment: pgpFSIVoBsRSB.pgp
Description: PGP signature



 

наши приятели

 

линукс за българи
http://linux-bg.org

FSA-BG
http://fsa-bg.org

OpenFest
http://openfest.org

FreeBSD BG
http://bg-freebsd.org

KDE-BG
http://kde.fsa-bg.org/

Gnome-BG
http://gnome.cult.bg/

проект OpenFMI
http://openfmi.net

NetField Forum
http://netField.ludost.net/forum/

 

 

Linux-Bulgaria.ORG

Mailing list messages are © Copyright their authors.