dev-cpp-users Mailing List for Dev-C++ (Page 498)
Open Source C & C++ IDE for Windows
Brought to you by:
claplace
You can subscribe to this list here.
| 2000 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
(15) |
Oct
(115) |
Nov
(154) |
Dec
(258) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2001 |
Jan
(377) |
Feb
(260) |
Mar
(249) |
Apr
(188) |
May
(152) |
Jun
(150) |
Jul
(195) |
Aug
(202) |
Sep
(200) |
Oct
(286) |
Nov
(242) |
Dec
(165) |
| 2002 |
Jan
(245) |
Feb
(241) |
Mar
(239) |
Apr
(346) |
May
(406) |
Jun
(369) |
Jul
(418) |
Aug
(357) |
Sep
(362) |
Oct
(597) |
Nov
(455) |
Dec
(344) |
| 2003 |
Jan
(446) |
Feb
(397) |
Mar
(515) |
Apr
(524) |
May
(377) |
Jun
(387) |
Jul
(532) |
Aug
(364) |
Sep
(294) |
Oct
(352) |
Nov
(295) |
Dec
(327) |
| 2004 |
Jan
(416) |
Feb
(318) |
Mar
(324) |
Apr
(249) |
May
(259) |
Jun
(218) |
Jul
(212) |
Aug
(259) |
Sep
(158) |
Oct
(162) |
Nov
(214) |
Dec
(169) |
| 2005 |
Jan
(111) |
Feb
(165) |
Mar
(199) |
Apr
(147) |
May
(131) |
Jun
(163) |
Jul
(235) |
Aug
(136) |
Sep
(84) |
Oct
(88) |
Nov
(113) |
Dec
(100) |
| 2006 |
Jan
(85) |
Feb
(119) |
Mar
(33) |
Apr
(31) |
May
(56) |
Jun
(68) |
Jul
(18) |
Aug
(62) |
Sep
(33) |
Oct
(55) |
Nov
(19) |
Dec
(40) |
| 2007 |
Jan
(22) |
Feb
(49) |
Mar
(34) |
Apr
(51) |
May
(66) |
Jun
(43) |
Jul
(116) |
Aug
(57) |
Sep
(70) |
Oct
(69) |
Nov
(97) |
Dec
(86) |
| 2008 |
Jan
(32) |
Feb
(47) |
Mar
(106) |
Apr
(67) |
May
(28) |
Jun
(39) |
Jul
(31) |
Aug
(25) |
Sep
(18) |
Oct
(25) |
Nov
(5) |
Dec
(21) |
| 2009 |
Jan
(33) |
Feb
(27) |
Mar
(27) |
Apr
(22) |
May
(22) |
Jun
(10) |
Jul
(17) |
Aug
(9) |
Sep
(21) |
Oct
(13) |
Nov
(4) |
Dec
(11) |
| 2010 |
Jan
(10) |
Feb
(8) |
Mar
(4) |
Apr
(1) |
May
|
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(8) |
Oct
(26) |
Nov
(9) |
Dec
(1) |
| 2011 |
Jan
(21) |
Feb
(16) |
Mar
(4) |
Apr
(19) |
May
(26) |
Jun
(9) |
Jul
(6) |
Aug
|
Sep
(4) |
Oct
(3) |
Nov
(2) |
Dec
(1) |
| 2012 |
Jan
(4) |
Feb
(7) |
Mar
(4) |
Apr
|
May
(1) |
Jun
(10) |
Jul
(1) |
Aug
(1) |
Sep
(18) |
Oct
(3) |
Nov
(1) |
Dec
(1) |
| 2013 |
Jan
(4) |
Feb
(2) |
Mar
(15) |
Apr
(6) |
May
(1) |
Jun
(3) |
Jul
(1) |
Aug
(2) |
Sep
(4) |
Oct
|
Nov
(9) |
Dec
|
| 2014 |
Jan
(4) |
Feb
(1) |
Mar
|
Apr
|
May
|
Jun
|
Jul
(5) |
Aug
(4) |
Sep
|
Oct
(2) |
Nov
(1) |
Dec
(4) |
| 2015 |
Jan
(2) |
Feb
(3) |
Mar
(1) |
Apr
(2) |
May
(1) |
Jun
(2) |
Jul
|
Aug
(1) |
Sep
(2) |
Oct
(9) |
Nov
(35) |
Dec
(6) |
| 2016 |
Jan
(7) |
Feb
(10) |
Mar
(10) |
Apr
(9) |
May
(13) |
Jun
(9) |
Jul
(1) |
Aug
(3) |
Sep
(3) |
Oct
(1) |
Nov
(1) |
Dec
|
| 2017 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2018 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2019 |
Jan
(1) |
Feb
|
Mar
|
Apr
(2) |
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
| 2020 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Ioannis V. <no...@ho...> - 2002-10-26 13:58:10
|
> -----Original Message----- > From: dev...@li...=20 > [mailto:dev...@li...] On Behalf=20 > Of Louis Godio > Sent: Saturday, October 26, 2002 3:30 AM > To: se...@al...; Per Westermark > Cc: dev...@li... > Subject: RE: [Dev-C++] dynamic allocation and structs >=20 >=20 >=20 > What was the final answer to the the original question asked: > "what is the duration of memory allocated by malloc (etc.)? " >=20 > If not freed manually or by a destructor, Does the memory ALWAYS get > released when the main() program ends with a normal exit ?=20 Yes. Ioannis * Ioannis Vranos * Programming pages: http://www.noicys.freeurl.com * Alternative URL: http://run.to/noicys |
|
From: sivan r. <siv...@ya...> - 2002-10-26 13:37:41
|
hello after downloading dev-c++ i have encountered a problem. when i try to run a program the output screen flashes by so fast i can't actually see the output! what can i do to make the output screen stay? and another question, why can't the program find "help"? thanx alot sivan ran siv...@ya... Sivan Ran Biotechnology BSc. Bar Ilan University --------------------------------- Do you Yahoo!? Y! Web Hosting - Let the expert host your web site |
|
From: Paul B. <pa...@ad...> - 2002-10-26 11:47:25
|
I've tried that but its still the same size. ----- Original Message ----- From: "Carlos Garc=EDa del Monte" <cg...@wo...> To: "dev-cpp-users-list" <dev...@li...> Sent: Saturday, October 26, 2002 8:25 PM Subject: Re: [Dev-C++] large exe size The compiler option -s. --- Outgoing mail is certified Virus Free. Checked by AVG anti-virus system (http://www.grisoft.com). Version: 6.0.401 / Virus Database: 226 - Release Date: 9/10/2002 |
|
From: Carlos d. M. <cg...@wo...> - 2002-10-26 11:17:45
|
The compiler option -s.
Paul Bray escribi=F3:
> When I call a windows function in c++ the exe's size jumps from about 1=
0k to
> 49k.
>
> heres an example:
>
> #include <windows.h>
>
> int main(int argc, char *argv[])
> {
> DWORD t;
>
> //t=3DGetTickCount();
> return 0;
> }
>
> if I uncomment the 't=3DGetTickCount();' it gets to 49k.
> Is there a way to make it smaller?
>
> Paul
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.401 / Virus Database: 226 - Release Date: 9/10/2002
>
> -------------------------------------------------------
> This SF.net email is sponsored by: ApacheCon, November 18-21 in
> Las Vegas (supported by COMDEX), the only Apache event to be
> fully supported by the ASF. http://www.apachecon.com
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
|
|
From: Per W. <pw...@ia...> - 2002-10-26 10:54:28
|
Never call any windows functions :-)
Whenever you call library functions, your exe-file will of course increase
in size with the implementation of the library function. However, that
library function might need to call other library fuctions, resulting in a
single call in your program adding a lot of size to the exe file.
For some libraries, it is possible to use dynamic linking, i.e. to use a
xx.DLL instead of a xx.LIB. This means that your exe will stay small, but
if you send out the binary, you must also make sure that the receiver of
the exe file has the needed DLL files (of same or higher version).
/Per W
On Sat, 26 Oct 2002, Paul Bray wrote:
> When I call a windows function in c++ the exe's size jumps from about 10k to
> 49k.
>
> heres an example:
>
> #include <windows.h>
>
> int main(int argc, char *argv[])
> {
> DWORD t;
>
> //t=GetTickCount();
> return 0;
> }
>
> if I uncomment the 't=GetTickCount();' it gets to 49k.
> Is there a way to make it smaller?
>
> Paul
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.401 / Virus Database: 226 - Release Date: 9/10/2002
>
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: ApacheCon, November 18-21 in
> Las Vegas (supported by COMDEX), the only Apache event to be
> fully supported by the ASF. http://www.apachecon.com
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|
|
From: Per W. <pw...@ia...> - 2002-10-26 10:50:03
|
----MyHeader.h----
#define LEN_OF_SHELLNAME 50
#define MAX_SHELLS 4096
typedef struct {
...
} shell_t;
int read_shells();
void print_shells(const char* filename);
extern shell database[];
extern int shell_count;
-----------------
----MyMain.c----
#include <stdio.h>
#include <stdlib.h>
...
#include "MyHeader.h"
// All global variables for the program.
shell_t database[MAX_SHELLS];
int shell_count = 0;
int main(int argc,const char* argv[],const char* env[]) {
...
if (read_shells()) {
print_shells("a_filename.txt");
}
return 0;
}
---------------------
----MyUtils.c
#include <stdio.h>
#include <stdlib.h>
...
#include "MyHeader.h"
// Return 1 if ok
// Return 0 if error or terminated
int read_shells() {
...
return !terminated;
}
void print_shells(const char* filename) {
...
}
-----------------------
On Sat, 26 Oct 2002, Rob Peacock wrote:
> Hi all,
>
> I have a couple of questions for you and they probably have simple answers.
> I hope you can help.
>
> Using your advice, I have created an array of structs, essentially building
> a database, mostly of int's and a couple of char arrays. I also built in
> some input testing so that I know the data coming in is what it is supposed
> to be.
>
> Since this is a fairly large file, and my instructor from years ago told me
> to keep main() small and uncluttered by keeping 'functional modules' in
> their own files, and then #include them in main(), I would like to do just
> that. The problem I have is that the data in the array is unavailable to
> main() and other similar functions. He also mentioned that only variables
> that must be global should, and most don't have to be.
>
> In perusing one of my manuals, it mentions that the variables should be
> made global by defining them in main() and then declaring them in a header
> file using 'extern' but it was kind of unclear on how to do this. Since
> this is going to be something I am sure I will be doing in a couple other
> places, I would like to get a clear understanding of this.
>
> Here is the struct, array, and constants that I want to make global:
> -------- file data_in.c -----
> #define LEN_OF_SHELLNAME 50
> #define MAX_SHELLS 4096
>
> typedef struct
> {
> int ShellIndex;
> int CueNumber;
> int ShellSize;
> float BreakDelay;
> float ShellDuration;
> char ShellName[LEN_OF_SHELLNAME];
> float ElapsedTime;
> } database ;
>
> database ShellCatalog[MAX_SHELLS];
>
> I want to be able to twiddle the data from within main() or from within
> other functions that may be called from somewhere else.
>
> My second question is that someone mentioned in a prior post that by using
> malloc(), realloc(), and free(), I could reduce the memory requirements by
> only allocating the minimum memory required by the above array, especially
> if I don't use the max number of records (4096). I'm sure that by making it
> more memory efficient, it will run a bit faster as well. How would I
> implement this?
Be quite wary of the realloc() function. Yes it does work, but it is very,
very, very expensive to use. It might require quite a lot of time to
perform the request, and it might result in a very fragmented memory, i.e.
when it grows the size of an allocated memory block, it might have to move
the block somewhere else, while leaving a unused hole of memory at the old
location. Depending on other parts of the application, these holes might
never be reused.
A preferred solution is to allocate exactly the correct amount directly:
count = ask_for_shell_count();
shell_t *database = (shell_t*)malloc(count*sizeof(shell_t));
If count can't be known in advance, go for the vector of pointer
alternative.
// Will consume 16kB (4096*4) memory independent on size of shell_t
shell_t* database[MAX_SHELLS];
while (have_more_shells) {
if (shell_count >= MAX_SHELLS) {
complain_about_shell_count();
break;
}
database[shell_count] = malloc(sizeof(shell_t));
database[shell_count++] = read_one_shell();
}
>
> All comments are appreciated and thanks for all of your help!
>
> --->Rob
>
>
> -------------------------------------------------------
> This SF.net email is sponsored by: ApacheCon, November 18-21 in
> Las Vegas (supported by COMDEX), the only Apache event to be
> fully supported by the ASF. http://www.apachecon.com
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|
|
From: Per W. <pw...@ia...> - 2002-10-26 10:28:56
|
Unless you work in embedded environments - set-top boxes, cameras, burglar
alarms, ... - you can be pretty sure that you have an OS that will release
all memory uppon termination of your program.
However, you normally should take care of releasing your memory anyway for
the following reasons:
- If the program does a lot of alloc/free, and you want to make sure that
the program isn't leaking memory, constantly growing in size. There are a
number of memory heap check programs that on termination of the program
prints out a reference to all memory not released. Obviously, this isn't
meaningful if you intentionally ignores the release of some memory. The
printout will contain a lot of nice then.
- If your aim is to change from C to C++. When the OS releases memory, it
will never call any object destructors, and a number of C++ objects might
have other side effects besides just consuming memory :-) such as
=> Closing and removing temporary files.
=> Removing a hourglass icon, and replacing with normal arrow icon.
=> Terminating another program (IDE don't need a compiler anymore).
When you do implement a C++ class, you really do expect the destructor to
be called, and consider it quite rude if someone don't release the object
before ending the program.
/Per W
On Fri, 25 Oct 2002, Scott Williams wrote:
> Don't know if anyone responded yet but I think the answer is: Yes, unless
> your OS messes up. The release of the memory wasn't actually my concern,
> however, I just wanted to be sure memory I allocated in one part of my
> program was going to be available elsewhere.
>
> Scott
>
> -----Original Message-----
> From: Louis Godio [mailto:lg...@ya...]
> Sent: Friday, October 25, 2002 8:30 PM
> To: se...@al...; Per Westermark
> Cc: dev...@li...
> Subject: RE: [Dev-C++] dynamic allocation and structs
>
> What was the final answer to the the original question asked:
> "what is the duration of memory allocated by malloc (etc.)? "
>
> If not freed manually or by a destructor, Does the memory ALWAYS get
> released when the main() program ends with a normal exit ?
>
> --- Scott Williams <se...@al...> wrote:
> > Thanks for the replies to my question (and the entertaining
> > discussion it led to). It was all very helpful.
> >
> > Scott
> >
> > -----Original Message-----
> > From: Per Westermark [mailto:pw...@ia...]
> > Sent: Thursday, October 24, 2002 9:13 AM
> > To: Scott Williams
> > Cc: dev...@li...
> > Subject: Re: [Dev-C++] dynamic allocation and structs
> >
> > // Alternative 1, array of entries.
> > mystruct *myarray;
> > void func(int count) {
> > int i;
> > myarray = (mystruct*)malloc(count*sizeof(mystruct));
> > for (i = 0; i < count; i++) {
> > myarray[i].xx = yy;
> > }
> > }
> >
> > // Alternative 2, array of pointers to entries.
> > mystruct **myarray;
> > void func(int count) {
> > int i;
> > myarray = (mystruct**)malloc(count*sizeof(*mystruct));
> > for (i = 0; i < count; i++) {
> > myarray[i] = (mystruct*)malloc(sizeof(mystruct));
> > myarray[i]->xx = yy;
> > }
> > }
> >
> > /Per W
> >
> > On Thu, 24 Oct 2002, Scott Williams wrote:
> >
> >> Hi,
> >>
> >> I'm working in C (no C++ please). Got a couple of questions
> >> related to dynamic allocation and in particular, dynamically
> >> allocating an array of structs.
> >>
> >> First, what is the duration of memory allocated by malloc
> >> (etc.)? In particular, I want to dynamically allocate/de-
> >> allocate several global variables within a single subroutine
> >> called from main and so want to be sure that the allocated
> >> memory exists beyond the scope of that subroutine.
> >>
> >> Second, it is my understanding that it is perfectly acceptable
> >> to have an array of structs. E.g.,
> >>
> >> struct mystruct {
> >> double var1;
> >> long var2;
> >> etc...
> >> }
> >>
> >> . . .
> >>
> >> struct mystruct data[100];
> >>
> >> Is this correct? If so, what then is the calling sequence to
> >> dynamically allocate an array of structs, and, in particularly,
> >> make the result available globally?
> >>
> >> Thanks for your help (& sorry if this is naive).
> >>
> >> Scott Williams
>
>
|
|
From: Paul B. <pa...@ad...> - 2002-10-26 09:15:40
|
When I call a windows function in c++ the exe's size jumps from about 10k to
49k.
heres an example:
#include <windows.h>
int main(int argc, char *argv[])
{
DWORD t;
//t=GetTickCount();
return 0;
}
if I uncomment the 't=GetTickCount();' it gets to 49k.
Is there a way to make it smaller?
Paul
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.401 / Virus Database: 226 - Release Date: 9/10/2002
|
|
From: Rob P. <py...@ea...> - 2002-10-26 07:30:22
|
Hi all,
I have a couple of questions for you and they probably have simple answers.
I hope you can help.
Using your advice, I have created an array of structs, essentially building
a database, mostly of int's and a couple of char arrays. I also built in
some input testing so that I know the data coming in is what it is supposed
to be.
Since this is a fairly large file, and my instructor from years ago told me
to keep main() small and uncluttered by keeping 'functional modules' in
their own files, and then #include them in main(), I would like to do just
that. The problem I have is that the data in the array is unavailable to
main() and other similar functions. He also mentioned that only variables
that must be global should, and most don't have to be.
In perusing one of my manuals, it mentions that the variables should be
made global by defining them in main() and then declaring them in a header
file using 'extern' but it was kind of unclear on how to do this. Since
this is going to be something I am sure I will be doing in a couple other
places, I would like to get a clear understanding of this.
Here is the struct, array, and constants that I want to make global:
-------- file data_in.c -----
#define LEN_OF_SHELLNAME 50
#define MAX_SHELLS 4096
typedef struct
{
int ShellIndex;
int CueNumber;
int ShellSize;
float BreakDelay;
float ShellDuration;
char ShellName[LEN_OF_SHELLNAME];
float ElapsedTime;
} database ;
database ShellCatalog[MAX_SHELLS];
I want to be able to twiddle the data from within main() or from within
other functions that may be called from somewhere else.
My second question is that someone mentioned in a prior post that by using
malloc(), realloc(), and free(), I could reduce the memory requirements by
only allocating the minimum memory required by the above array, especially
if I don't use the max number of records (4096). I'm sure that by making it
more memory efficient, it will run a bit faster as well. How would I
implement this?
All comments are appreciated and thanks for all of your help!
--->Rob
|
|
From: Scott W. <se...@al...> - 2002-10-26 03:24:28
|
Don't know if anyone responded yet but I think the answer is: Yes, unless
your OS messes up. The release of the memory wasn't actually my concern,
however, I just wanted to be sure memory I allocated in one part of my
program was going to be available elsewhere.
Scott
-----Original Message-----
From: Louis Godio [mailto:lg...@ya...]
Sent: Friday, October 25, 2002 8:30 PM
To: se...@al...; Per Westermark
Cc: dev...@li...
Subject: RE: [Dev-C++] dynamic allocation and structs
What was the final answer to the the original question asked:
"what is the duration of memory allocated by malloc (etc.)? "
If not freed manually or by a destructor, Does the memory ALWAYS get
released when the main() program ends with a normal exit ?
--- Scott Williams <se...@al...> wrote:
> Thanks for the replies to my question (and the entertaining
> discussion it led to). It was all very helpful.
>
> Scott
>
> -----Original Message-----
> From: Per Westermark [mailto:pw...@ia...]
> Sent: Thursday, October 24, 2002 9:13 AM
> To: Scott Williams
> Cc: dev...@li...
> Subject: Re: [Dev-C++] dynamic allocation and structs
>
> // Alternative 1, array of entries.
> mystruct *myarray;
> void func(int count) {
> int i;
> myarray = (mystruct*)malloc(count*sizeof(mystruct));
> for (i = 0; i < count; i++) {
> myarray[i].xx = yy;
> }
> }
>
> // Alternative 2, array of pointers to entries.
> mystruct **myarray;
> void func(int count) {
> int i;
> myarray = (mystruct**)malloc(count*sizeof(*mystruct));
> for (i = 0; i < count; i++) {
> myarray[i] = (mystruct*)malloc(sizeof(mystruct));
> myarray[i]->xx = yy;
> }
> }
>
> /Per W
>
> On Thu, 24 Oct 2002, Scott Williams wrote:
>
>> Hi,
>>
>> I'm working in C (no C++ please). Got a couple of questions
>> related to dynamic allocation and in particular, dynamically
>> allocating an array of structs.
>>
>> First, what is the duration of memory allocated by malloc
>> (etc.)? In particular, I want to dynamically allocate/de-
>> allocate several global variables within a single subroutine
>> called from main and so want to be sure that the allocated
>> memory exists beyond the scope of that subroutine.
>>
>> Second, it is my understanding that it is perfectly acceptable
>> to have an array of structs. E.g.,
>>
>> struct mystruct {
>> double var1;
>> long var2;
>> etc...
>> }
>>
>> . . .
>>
>> struct mystruct data[100];
>>
>> Is this correct? If so, what then is the calling sequence to
>> dynamically allocate an array of structs, and, in particularly,
>> make the result available globally?
>>
>> Thanks for your help (& sorry if this is naive).
>>
>> Scott Williams
|
|
From: Louis G. <lg...@ya...> - 2002-10-26 00:30:27
|
What was the final answer to the the original question asked:
"what is the duration of memory allocated by malloc (etc.)? "
If not freed manually or by a destructor, Does the memory ALWAYS get
released when the main() program ends with a normal exit ?
--- Scott Williams <se...@al...> wrote:
> Thanks for the replies to my question (and the entertaining discussion
> it
> led to). It was all very helpful.
>
> Scott
>
> -----Original Message-----
> From: Per Westermark [mailto:pw...@ia...]
> Sent: Thursday, October 24, 2002 9:13 AM
> To: Scott Williams
> Cc: dev...@li...
> Subject: Re: [Dev-C++] dynamic allocation and structs
>
>
>
> // Alternative 1, array of entries.
> mystruct *myarray;
> void func(int count) {
> int i;
> myarray = (mystruct*)malloc(count*sizeof(mystruct));
> for (i = 0; i < count; i++) {
> myarray[i].xx = yy;
> }
> }
>
> // Alternative 2, array of pointers to entries.
> mystruct **myarray;
> void func(int count) {
> int i;
> myarray = (mystruct**)malloc(count*sizeof(*mystruct));
> for (i = 0; i < count; i++) {
> myarray[i] = (mystruct*)malloc(sizeof(mystruct));
> myarray[i]->xx = yy;
> }
> }
>
> /Per W
>
> On Thu, 24 Oct 2002, Scott Williams wrote:
>
> > Hi,
> >
> > I'm working in C (no C++ please). Got a couple of questions related
> to
> > dynamic allocation and in particular, dynamically allocating an array
> of
> > structs.
> >
> > First, what is the duration of memory allocated by malloc (etc.)? In
> > particular, I want to dynamically allocate/de-allocate several global
> > variables within a single subroutine called from main and so want to
> be
> sure
> > that the allocated memory exists beyond the scope of that subroutine.
> >
> > Second, it is my understanding that it is perfectly acceptable to have
> an
> > array of structs. E.g.,
> >
> > struct mystruct {
> > double var1;
> > long var2;
> > etc...
> > }
> >
> > . . .
> >
> > struct mystruct data[100];
> >
> > Is this correct? If so, what then is the calling sequence to
> dynamically
> > allocate an array of structs, and, in particularly, make the result
> > available globally?
> >
> > Thanks for your help (& sorry if this is naive).
> >
> > Scott Williams
> >
> >
> >
> > -------------------------------------------------------
> > This sf.net email is sponsored by: Influence the future
> > of Java(TM) technology. Join the Java Community
> > Process(SM) (JCP(SM)) program now.
> >
>
http://ad.doubleclick.net/clk;4729346;7592162;s?http://www.sun.com/javavote
> > _______________________________________________
> > Dev-cpp-users mailing list
> > Dev...@li...
> > TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> > https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
> >
>
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: Influence the future
> of Java(TM) technology. Join the Java Community
> Process(SM) (JCP(SM)) program now.
> http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
__________________________________________________
Do you Yahoo!?
Y! Web Hosting - Let the expert host your web site
http://webhosting.yahoo.com/
|
|
From: Elizabeth B. <sog...@ya...> - 2002-10-25 22:26:30
|
Napoleon Ahiable <n_a...@ya...> writes: > Hello, > > I had these error message below after compilation. I will appreciate > your help, please. Also what is the general solution for the "Undefined > > reference error" message?. > > Napoleon. > > Building Makefile: "C:\Projects\DocuSort\Makefile.win" > Executing make... > mingw32-make.exe -f "C:\Projects\DocuSort\Makefile.win" all > g++.exe Main.o Class.o Maker.o Icon.o Procedure.o Commander.o View.o > MenuTable.o Cmd.o Menu.o Exception.o Ctrl.o DocuSort_private.res -o > "DocuSort.exe" -L"C:/MinGW/lib" -L"C:/Dev-Cpp/Lib" -lcomctl32 > -I"C:/MinGW/include" -I"C:/Dev-Cpp/Include" -I"C:/MinGW/include/c++" > -I"C:/MinGW/include" -I"C:/Dev-Cpp/Include" -D_WIN32_IE=0x0300 -g3 > -DSTRICT -s -mwindows Main.o: In function `ZN4Menu5MakerD2Ev': > c:/mingw/include/c++/3.2/memory(.data$_ZTVN3Win10ControllerE+0x10): > undefined reference to `Win::Controller::OnCreate(Win::CreateData > const*, bool&)' > Main.o: In function `WinMain': > C:/Projects/DocuSort/Main.cpp:9: undefined reference to > `Win::Controller::OnInitPopup(HMENU__*, int)' mingw32-make.exe: *** > [DocuSort.exe] Error 1 Execution terminated Where is your Win::Controller class located? It should be in one of the object files on the command line, like Menu.o and Exception.o. The general solution is to make sure that on object file or library that has the implementation of the function is included during the link stage, such as by adding -lwsock32 (or some other library) or a local object file. Anyway, for Dev-C++, make sure that the source file for Win::Controller has been added to the project (assuming that it is something you wrote for this particular project). Elizabeth |
|
From: Harry S. <har...@ho...> - 2002-10-25 22:23:51
|
When I try to check for updates and in particular to get the help files for the BETA I get the error message from vupdate "devcpp.cfg is missing". The file "devcpp.cfg" is on my computer running windows xp on a network at: C:\Documents and Settings\"my login"\Local Settings\Application Data. What do I need to do? Thanks, Harry Harry Spier 371 Brickman Rd. Hurleyville, New York USA 12747 _________________________________________________________________ Internet access plans that fit your lifestyle -- join MSN. http://resourcecenter.msn.com/access/plans/default.asp |
|
From: <h.r...@gm...> - 2002-10-25 16:56:14
|
Hello, if i try to compile a program i get the error message: Building Makefile: "E:\dev\dev-c++\proj2\Makefile.win" Führt make... aus make.exe -f "E:\dev\dev-c++\proj2\Makefile.win" all [...] -mcpu=pentium -fexceptions -s C:\Dev-Cpp\bin\..\lib\gcc-lib\mingw32\3.2\..\..\..\..\mingw32\bin\ld.exe: cannot find -lstdc++ make.exe: *** [testproj1.exe] Error 1 Ausführung beendet Which File is the compiler missing ? and where can i find it. Thanks in advance Horst -- +++ GMX - Mail, Messaging & more http://www.gmx.net +++ NEU: Mit GMX ins Internet. Rund um die Uhr für 1 ct/ Min. surfen! |
|
From: Napoleon A. <n_a...@ya...> - 2002-10-25 16:51:44
|
Hello, I had these error message below after compilation. I will appreciate your help, please. Also what is the general solution for the "Undefined reference error" message?. Napoleon. Building Makefile: "C:\Projects\DocuSort\Makefile.win" Executing make... mingw32-make.exe -f "C:\Projects\DocuSort\Makefile.win" all g++.exe Main.o Class.o Maker.o Icon.o Procedure.o Commander.o View.o MenuTable.o Cmd.o Menu.o Exception.o Ctrl.o DocuSort_private.res -o "DocuSort.exe" -L"C:/MinGW/lib" -L"C:/Dev-Cpp/Lib" -lcomctl32 -I"C:/MinGW/include" -I"C:/Dev-Cpp/Include" -I"C:/MinGW/include/c++" -I"C:/MinGW/include" -I"C:/Dev-Cpp/Include" -D_WIN32_IE=0x0300 -g3 -DSTRICT -s -mwindows Main.o: In function `ZN4Menu5MakerD2Ev': c:/mingw/include/c++/3.2/memory(.data$_ZTVN3Win10ControllerE+0x10): undefined reference to `Win::Controller::OnCreate(Win::CreateData const*, bool&)' Main.o: In function `WinMain': C:/Projects/DocuSort/Main.cpp:9: undefined reference to `Win::Controller::OnInitPopup(HMENU__*, int)' mingw32-make.exe: *** [DocuSort.exe] Error 1 Execution terminated __________________________________________________ Do you Yahoo!? Y! Web Hosting - Let the expert host your web site http://webhosting.yahoo.com/ |
|
From: Elizabeth B. <sog...@ya...> - 2002-10-25 15:47:45
|
"Daniel Glenfield" <sp...@ho...> writes: > If I create a variable, say > > int NumberOfDays = 0; > > and I decide that I want to delete the variable from memory, how do I do > this? I don't think I can use delete[] can I, as it's not a pointer. Must I > create a pointer then call delete? But then how do I remove the pointer? > > I'm sure I know the answer to this, but I can't remember!!! Its on the stack and not the heap and will be automatically deleted when NumberOfDays goes out of scope. If you want control over when the memory is created and deleted, use a pointer. Elizabeth |
|
From: Per W. <pw...@ia...> - 2002-10-25 15:45:45
|
Either store void pointers in the array, or always typecast each array assignment to a "base-class" struct. Since C doesn't have any RTTI, the simplest way to afterwards find out about the contents of the pointer, is to assure that all used structs always starts with a field type, that may be checked, before typecasting the pointer to the correct type and do any real actions. /Per W On Fri, 25 Oct 2002, Ioannis Vranos wrote: > > -----Original Message----- > > From: Per Westermark [mailto:pw...@ia...] > > Sent: Friday, October 25, 2002 1:54 PM > > To: Ioannis Vranos > > Cc: Dev-C++ Mailing List > > Subject: RE: [Dev-C++] dynamic allocation and structs > > > > > > Exactly why my previous mail specified use-cases. > > > > - Sparse matrix, where a lot of entries are NULL. > > - Quick sort, since it's enough to move the pointers. > > - Different object types for each index, simulating C++ abstract base > > class. > > > You need void * for this (or a container struct). But this means you > can't use it directly. > > > > - Supports large vector in 16-bit code, where it's possible > > to have 16000 > > entries of up to 64000 byte size each. > > > Yep, you are an older programmer than me. :) I know the 64 KB DOS limit > though. > > > Ioannis > > * Ioannis Vranos > * Programming pages: http://www.noicys.freeurl.com > * Alternative URL: http://run.to/noicys > > > ------------------------------------------------------- > This sf.net email is sponsored by: Influence the future > of Java(TM) technology. Join the Java Community > Process(SM) (JCP(SM)) program now. > http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en > _______________________________________________ > Dev-cpp-users mailing list > Dev...@li... > TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm > https://lists.sourceforge.net/lists/listinfo/dev-cpp-users > |
|
From: Per W. <pw...@ia...> - 2002-10-25 15:33:54
|
Scope. If global or static, the variable dies when the application dies, else it dies whenever it leaves the scope. /Per W On Fri, 25 Oct 2002, Daniel Glenfield wrote: >=20 > If I create a variable, say >=20 > int NumberOfDays =3D 0; >=20 > and I decide that I want to delete the variable from memory, how do I do= =20 > this? I don't think I can use delete[] can I, as it's not a pointer. Must= I=20 > create a pointer then call delete? But then how do I remove the pointer? >=20 > I'm sure I know the answer to this, but I can't remember!!! >=20 >=20 >=20 > _________________________________________________________________ > Broadband?=A0Dial-up? Get reliable MSN Internet Access.=20 > http://resourcecenter.msn.com/access/plans/default.asp >=20 >=20 >=20 > ------------------------------------------------------- > This sf.net email is sponsored by: Influence the future=20 > of Java(TM) technology. Join the Java Community=20 > Process(SM) (JCP(SM)) program now.=20 > http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en > _______________________________________________ > Dev-cpp-users mailing list > Dev...@li... > TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm > https://lists.sourceforge.net/lists/listinfo/dev-cpp-users >=20 |
|
From: Elizabeth B. <sog...@ya...> - 2002-10-25 15:31:21
|
chr...@cr... writes:
> Who help me ? If i compiled this project with devcpp 4.9.6, i have messages
> :
It does not appear to me that you included the definition of the Forme
struct in struc.c. This is how most would arrange your code:
"struc.h":
~~~~~~~~~~
#ifndef STRUC_H
#define STRUC_H
struct Forme
{
int type;
int couleur;
};
void
change_structure(struct Forme *Forme);
#endif
"struc.c":
~~~~~~~~~~
#include "struc.h"
void
change_structure(struct Forme *Forme)
{
(*Forme).type=0;
(*Forme).couleur=1;
}
"main.c":
~~~~~~~~~
#include <stdio.h>
#include "struc.h"
int
main(int argc, char *argv[])
{
struct Forme cercle;
change_structure(&cercle);
printf("cercle.type %d\n", cercle.type);
printf("cercle.couleur %d\n", cercle.couleur);
system("PAUSE");
return 0;
}
There are various ways to do it, of course, but both struc.c and
main.c need the definiton of struct Forme, so it is better to define
it in one place (struc.h) and have both files reference (#include) it.
Elizabeth
|
|
From: Daniel G. <sp...@ho...> - 2002-10-25 14:58:13
|
If I create a variable, say int NumberOfDays = 0; and I decide that I want to delete the variable from memory, how do I do this? I don't think I can use delete[] can I, as it's not a pointer. Must I create a pointer then call delete? But then how do I remove the pointer? I'm sure I know the answer to this, but I can't remember!!! _________________________________________________________________ Broadband? Dial-up? Get reliable MSN Internet Access. http://resourcecenter.msn.com/access/plans/default.asp |
|
From: Ioannis V. <no...@ho...> - 2002-10-25 14:09:44
|
> -----Original Message----- > From: Per Westermark [mailto:pw...@ia...] > Sent: Friday, October 25, 2002 5:06 PM > To: Ioannis Vranos > Cc: 'Dev-C++ Mailing List' > Subject: RE: [Dev-C++] dynamic allocation and structs > > As already posted, a compilable example with qsort. > qsort think the pointers are the elements, so the sort isn't > a problem. > All you have to think about in your compare function, is that > you don't > get pointers to your elements, but pointers to pointers to > your elements. (On second thought) You are right. :) This is what usually happens in C++ with list when sort(). In this way you have rapid copying when dealing with large struct objects. C00l. Ioannis * Ioannis Vranos * Programming pages: http://www.noicys.freeurl.com * Alternative URL: http://run.to/noicys |
|
From: Per W. <pw...@ia...> - 2002-10-25 14:06:29
|
On Fri, 25 Oct 2002, Ioannis Vranos wrote: > > -----Original Message----- > > From: dev...@li... > > [mailto:dev...@li...] On Behalf > > Of Per Westermark > > Sent: Friday, October 25, 2002 1:54 PM > > To: Ioannis Vranos > > Cc: Dev-C++ Mailing List > > Subject: RE: [Dev-C++] dynamic allocation and structs > > > > > > Exactly why my previous mail specified use-cases. > > > > - Sparse matrix, where a lot of entries are NULL. > > - Quick sort, since it's enough to move the pointers. > > > As far as i can think of it, you can't use qsort() though. qsort() > copies the elements and in addition, you can't compare pointers not > pointing inside the same array. So you have to define your own > facilities. As already posted, a compilable example with qsort. qsort think the pointers are the elements, so the sort isn't a problem. All you have to think about in your compare function, is that you don't get pointers to your elements, but pointers to pointers to your elements. > > > Ioannis > > * Ioannis Vranos > * Programming pages: http://www.noicys.freeurl.com > * Alternative URL: http://run.to/noicys > > > > > ------------------------------------------------------- > This sf.net email is sponsored by: Influence the future > of Java(TM) technology. Join the Java Community > Process(SM) (JCP(SM)) program now. > http://ads.sourceforge.net/cgi-bin/redirect.pl?sunm0004en > _______________________________________________ > Dev-cpp-users mailing list > Dev...@li... > TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm > https://lists.sourceforge.net/lists/listinfo/dev-cpp-users > |
|
From: Scott W. <se...@al...> - 2002-10-25 13:43:13
|
Thanks for the replies to my question (and the entertaining discussion it
led to). It was all very helpful.
Scott
-----Original Message-----
From: Per Westermark [mailto:pw...@ia...]
Sent: Thursday, October 24, 2002 9:13 AM
To: Scott Williams
Cc: dev...@li...
Subject: Re: [Dev-C++] dynamic allocation and structs
// Alternative 1, array of entries.
mystruct *myarray;
void func(int count) {
int i;
myarray = (mystruct*)malloc(count*sizeof(mystruct));
for (i = 0; i < count; i++) {
myarray[i].xx = yy;
}
}
// Alternative 2, array of pointers to entries.
mystruct **myarray;
void func(int count) {
int i;
myarray = (mystruct**)malloc(count*sizeof(*mystruct));
for (i = 0; i < count; i++) {
myarray[i] = (mystruct*)malloc(sizeof(mystruct));
myarray[i]->xx = yy;
}
}
/Per W
On Thu, 24 Oct 2002, Scott Williams wrote:
> Hi,
>
> I'm working in C (no C++ please). Got a couple of questions related to
> dynamic allocation and in particular, dynamically allocating an array of
> structs.
>
> First, what is the duration of memory allocated by malloc (etc.)? In
> particular, I want to dynamically allocate/de-allocate several global
> variables within a single subroutine called from main and so want to be
sure
> that the allocated memory exists beyond the scope of that subroutine.
>
> Second, it is my understanding that it is perfectly acceptable to have an
> array of structs. E.g.,
>
> struct mystruct {
> double var1;
> long var2;
> etc...
> }
>
> . . .
>
> struct mystruct data[100];
>
> Is this correct? If so, what then is the calling sequence to dynamically
> allocate an array of structs, and, in particularly, make the result
> available globally?
>
> Thanks for your help (& sorry if this is naive).
>
> Scott Williams
>
>
>
> -------------------------------------------------------
> This sf.net email is sponsored by: Influence the future
> of Java(TM) technology. Join the Java Community
> Process(SM) (JCP(SM)) program now.
>
http://ad.doubleclick.net/clk;4729346;7592162;s?http://www.sun.com/javavote
> _______________________________________________
> Dev-cpp-users mailing list
> Dev...@li...
> TO UNSUBSCRIBE: http://www.noicys.cjb.net/devcpp/ub.htm
> https://lists.sourceforge.net/lists/listinfo/dev-cpp-users
>
|
|
From: Daniel G. <sp...@ho...> - 2002-10-25 13:34:30
|
What's a manifest constant? _________________________________________________________________ Internet access plans that fit your lifestyle -- join MSN. http://resourcecenter.msn.com/access/plans/default.asp |
|
From: Ioannis V. <no...@ho...> - 2002-10-25 13:17:32
|
> -----Original Message----- > From: dev...@li...=20 > [mailto:dev...@li...] On Behalf=20 > Of Per Westermark > Sent: Friday, October 25, 2002 2:07 PM > To: Jerry van Dijk > Cc: dev...@li... > Subject: Re: Was: Re: [Dev-C++] Re: Dev-cpp-users digest, Vol=20 > 1 #1071 - 9 msgs >=20 >Somewhere trough all network steps - since pine isn't running=20 > locally - > that paste part doesn't work reliable. I have never seen a=20 > paste error in > the local editor, but regularly when pasting back the answer=20 > into the new > mail. There is the high possibility the server in wwhich you telnet, runs also the pop3 server (pop3 daemon), so try using a pop3 mail client to see if it works. Ioannis * Ioannis Vranos * Programming pages: http://www.noicys.freeurl.com * Alternative URL: http://run.to/noicys |