c++ question.
Thomas Lübking
thomas.luebking at web.de
Thu Sep 2 21:15:54 BST 2010
This is a way to access (in this case) the last char of the previous element
(to eg. replace '\0' with ' ') but actually the particular example looks buggy
to me, since "wordlist[0][-1]" is NOT part of "wordlist[max_wordlist]" (which
starts at wordlist[0][0] with the first char of the first string.
-> the loop should start at 1, run to words ("<=", or not, depends on what'S
intended) and access "i-1" in the second position.
So if it's not somehow guaranteed that there's NOT sth. usefull in this memory
portion, you get a mem corruption (i think, but maybe this is just beyond no
me ;-)
Cheers
Thomas
Am Thursday 02 September 2010 schrieb Jaime:
> Hi,
> I do not know what this methods do,
> They use a [-1] array index, perhaps to do pointer arithmetic?, but
> I do not know, it is the first time I see negative indexes in C++
> arrays.
>
> They are in kdebase/runtime/kioslave/man/man2html.cpp
> lines 2845, 3166, 3661, 3693, 3732, 3791, 4067 and 4163.
> Here you have an extract:of the first case...
>
> char *wordlist[max_wordlist];
> fill_words(c, wordlist, &words, true, &c);
> for (int i=0; i<words; i++)
> {
> if ((mode) || (inFMode))
> {
> out_html(" ");
> curpos++;
> }
> wordlist[i][-1]=' '; <---------------- The unknown thing for
> me out_html( set_font( (i&1) ? font2 : font1 ) );
> scan_troff(wordlist[i],1,NULL);
> }
>
> Best Regards.
More information about the kde-core-devel
mailing list