Igal wrote:
> On May 8, 5:36 pm, "Jim Langston" <tazmas...@[EMAIL PROTECTED]
> wrote:
>> Igal wrote:
>>> hay, i have this werid problem with my book adding function, this
>>> how it looks
>>
>>> book* AddBook(book *bp, unsigned *size) {
>>> ...
>>> //then i use realloc to allocate space for the new item in the bp
>>> pointer
>>> bp = (book*)realloc(bp, sizeof(book));
>>
>> realloc accepts the pointer to the prevoiusly allocated block, and
>> the new size. Since you are passing sizeof( book ) you are only
>> allocating enough space for 1 item.
>>
>> You probably meant something like:
>> bp = realloc( bp, sizeof( book ) * *size );
>> or
>> bp = realloc( bp, sizeof( book ) * (*size + 1) )
>> or something. I'm not sure how many additional items you want to
>> allocate for nor what size represents (new size or old size).
>
> in this function i need to reallocate only space for one new item.
> *size is the number of items i have in my array.
> correct me if i'm wrong, but if i realloc the size of my array+1,
> won't this allocate + n items to the original array?
No, realloc accpets the *new size* Total new size. How big you want the
array to be. Reguardless of how big it currently is. Which is current
size
+ 1, or in your case (*size + 1) or with the source you gave before, n.
--
Jim Langston
tazmaster@[EMAIL PROTECTED]


|
16 Posts in Topic:
|
Igal <igal.alkon@[EMAI |
2008-05-08 07:15:19 |
|
Richard Heathfield <rj |
2008-05-08 14:27:23 |
|
Igal <igal.alkon@[EMAI |
2008-05-08 07:33:01 |
|
"Jim Langston" |
2008-05-08 07:52:48 |
|
"Jim Langston" |
2008-05-08 07:36:48 |
|
Igal <igal.alkon@[EMAI |
2008-05-08 07:37:40 |
|
Igal <igal.alkon@[EMAI |
2008-05-08 07:43:38 |
|
"Jim Langston" |
2008-05-08 07:54:42 |
|
Kenneth Brody <kenbrod |
2008-05-08 10:56:41 |
|
"K. Jennings" & |
2008-05-08 18:57:08 |
|
Eric Sosman <Eric.Sosm |
2008-05-08 13:55:17 |
|
Kenneth Brody <kenbrod |
2008-05-08 13:46:46 |
|
CBFalconer <cbfalconer |
2008-05-08 18:17:43 |
|
Richard Heathfield <rj |
2008-05-09 05:32:33 |
|
Antoninus Twink <nospa |
2008-05-09 11:52:02 |
|
Eligiusz Narutowicz<el |
2008-05-09 11:54:42 |
|