This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Pages: « 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 »
466
Off-Topic / Re: Freakin' Ouch
« on: July 26, 2014, 07:12:48 pm »I got my four wisdom teeth pulled 2 years ago. I didn't feel anything. So happy I was out cold when they were pulled. I've heard a rumor that sometimes when they knock you out like that on rare occaisions there's a risk you'll still be completely awake
It's not a rumour TKG, it's in medical literature. It's called anesthesia awareness, There are several layers to anesthesia, paralysing of muscles so you can't move, and the brain part. Sometimes people will "wake up" (the brain part) but still be under the effects of the paralytic, so the patient cannot move or talk but will feel the pain. Sometimes a person is not fully aware. Think of it like sleep paralysis when your brain wakes up but you are paralysed and cannot move.
Wisdom tooth removal does not always require general anesthesia. Mine had to be surgically removed as it was not fully grown and impacted under the gum, which had to be sliced and part of the bone drilled. I only got a local shot of Novocaine + area reinforced with spray I was fully aware the whole time and did not feel a bloody thing. Some dentists don't numb the area properly. Seeing a dentist vs. specialist is a big difference.
Some people have extreme anxiety and fear, that does not help, that can have you "fighting" the anesthesia.
Though TKG, had you woken in the middle of the procedure you probably would not have felt a thing if they also numbed the area properly, only thing would have been the discomfort of being paralysed and not able to move, sort of like being trapped in your body.
Quote
and can feel the pain of them being pulled as they are being pulled but you can't move, scream, or anything, you can't control yourself you just sit there limp and in pain.
This happens with regular surgery, sometimes due to the wrong doses given, usually, it's rare, but can happen, for whatever reason, though for wisdom teeth removal they probably give general anesthesia to people who are very anxious/nervous, and not because of the pain of the procedure, which actually should not be that painful if done correctly. So if you'd wake up you'd still be numb in the area where the tooth is being pulled.
Quote
Anyways, I was just sleepy, the procedure went well, no non-wisdom teeth damaged, didn't feel sick. When
A good dentist makes a big difference TKG. Sometimes harder to remove tooth are drilled or sawed in half, especially weak, decayed tooth.
Mine gave me 2 strong anti inflammatory/PK 2 hours prior to surgery. I didn't eat or drink prior to the procedure.
Quote
I stopped being too sleepy to eat I could eat solid food right away. I don'rt remember them saying a thing about not eating solid food for X amount of time but I guess you guys must have had something different happen during the procedure.
To avoid possible infection at the site and residues getting stuck inside the hole. It has to heal properly first,
not a good to eat or get food in the area around where the hole is.....you want to avoid "dry sockets".
I did not feel a thing getting my WT surgically removed ,but what is weird is that when I get tooth filling from my regular dentists even though I get numbed I sometimes feel the "zing" of the drilling sometimes, hits a bloody nerve and the feeling is excruciating pain.
I guess some people have better thresholds of pain. When I was a kid I used to get my fillings done cold, which means no numbing...... Now, even with numbing I sometimes feel the pain of filling a tooth and they are usually tiny cavities.
Daz, make sure you use that ice mate ! For the first 3 days use the ice, the pain killers and keep the area clean ! Don't brush teeth, and keep inside of mouth clean and that no residue lodges inside the holes, and you will be fine, if all goes well couple of days to 1 week you'll be ok. though I'd never allow 4 removed at once that's crazy
467
Off-Topic / Re: Freakin' Ouch
« on: July 26, 2014, 12:18:38 pm »Well he got 4 pulled. I don't know why though, as they are not usually pulled if everything is okay. And I doubt all 4 started to be problem. He probably looks like a pirate now.
Exactly they are usually not pulled if you take care of your mouth hygiene Sometimes they are pulled because those are the teeth that are extremely vulnerable to decay, and once they do it could in some cases be difficult to fill/repair without cracking them, so they get removed depending on the extent of the decay/damage.
They probably attached rope to his 4 tooth and attached the other end to a truck and metal strapped him to a chair and had the truck hit the gas and all 4 were yanked at the same time !
When I got mine surgically removed and drilled, I could eat within few hours no problem.
They must have excavated a few extra holes / craters - truck must have gone too fast
468
Off-Topic / Re: Freakin' Ouch
« on: July 26, 2014, 12:13:26 pm »Got all 4 of my wisdom teeth pulled yesterday. Feels like my face got hit with a sledgehammer. I'm taking 5 different pills, 3 times a day. On the plus side one of them is vicodin so usually the pain ain't so bad. Unfortunately vicodin also makes me extremely sleepy and nauseous.
Also I can't eat solid food for a week.
You gotta be kidding me ! What the hell kind of dentist pulls 4 wisdom teeth in one session ? And why would agree to pull all 4 at the same time ?
Also it depends on the dentist really. I had 1 impacted, that required surgery and bone drilling. Went to a specialist, one of the best in town, cost nearly 10 times more, but did not feel anything, pain was minimal, and only took 1-2 pain killers afterwards and none that followed.
But removing 4 at once, wow !
Just be careful of dry sockets., and
wait until 2 days that's when the swelling really is at its peak
cheers
469
Programming Help / Re: C++ short delay when using CIN
« on: July 25, 2014, 03:52:09 pm »Quotestl::containers is definitely something I need then, since I would need to pass the objects between functions, as I like to keep it clean and not do everything in main say for example a file reading function, then passing the read large block to an encryption function and so forth, I know that the non dynamic, regular ways of doing things, it gets lost outside the function (scope). Something I definitely do not want at this point for my specific needsYeah, it's useful when passing to functions, because regular arrays don't hold it's size. So if you pass an array to a function, you cannot know how large it was (so you cannot iterate over it). That requires ugly fixes like passing size as a separate argument. With containers, you always have that information. Just remember passing stuff by reference, so you don't create a copy. I had a project to do with computer vision - I passed images to functions to extract data from them.Code: (edl) [Select]double awesomeFunction(std::vector<std::vector<unsigned char> > img){
I had like 20FPS, because I was passing data by value. Then I just had to pass it by reference (add &) and it jumps to 60FPS:
//Calculate something awesome and return
}Code: (edl) [Select]double awesomeFunction(std::vector<std::vector<unsigned char> > &img){
It's something people learn early, but still something worth reminding. Especially when working with large amount of data.
//Calculate something awesome and return
}QuoteI discovered the hard way back when I using GM that file functions were HORRIBLY, RIDICULOUSLY slow, but YYG must have assumed most people would use small files and never notice...... But try reading a larger binary and it's a PAIN....... They read 1 byte at a time, and I believe ENIGMA also, since it is compatible to its GML, also uses the same method.......Yeah, we need to address that. One suggestion I have is to have an option to load the whole file (file_open function) and then abstract that fact, so you can still use file_text_readln() and so on, but instead of doing that on the HDD, you do that in RAM. So in essence you would have a much larger speed, but still be compatible.QuoteIN your example you are reading lines of text from a text file. I'm guessing, model informationAs the name implies, I loaded data from a CSV file. I saved point clouds in that format (as it's very easy) and used this function to load it in ENIGMA.QuoteBTW speaking of that, if I were to code a function that uses containers, buckets, vectors, or whatever they are called, and stuff dynamically allocated (heap), in functions, can I use this in my ENIGMA projects. Example, if I use stl containers and vector and store a large 100 MB file into for example ResRead, and do something like return ResRead, can I pass back that 100MB back the function that was called in my enigma project ? If that is the case, then I could easily revamp the file functions and add faster more efficient ones for advanced game developers.Well the idea is that you can use C++ in ENIGMA. So you should be able to just call "vector<double> myVector;" straight in ENIGMA. I do make calls like "glEnable(...)" in my ENIGMA projects, so I know it's possible to use stuff that is not just in ENIGMA functions. Problem is that they break GML/EDL compatibility, as you know are using classes instead of ID's. But I personally think we should end using them.
So you are telling me I could use those in ENIGMA, but I thought we could not do that inside ENIGMA, meaning can't use STL containers with this parser... I would much rather make it into a C++ function and call it from my ENIGMA project
More and more I realise how LAZY and UGLY many parts of GM were implemented...... But that idea of yours is a great one, keeping compatibility with file functions in G**Studio but reading the whole file in memory and reading from the buffer instead of the HDD. However, keep in mind this has its pros and cons......
#1) More memory consumption
#2) counter productive, especially if you need to open really small files which most people do, so you won't gain any noticeable speed, and in some cases the opposite.
So in my opinion adding NEW functions would be ideal. People can't have their cake and eat it, there is a hefty price to pay for being compatible to a highly flawed product.
There are times when you DON'T want to load the entire file in memory and read straight from HDD, particularly when you need to read a small chunk of info....... There are times when you would want to read by blocks as opposed to the entire file.......and there are times when you want the entire file in RAM.
So it's nice of YoYoGames to have assumed and DECIDED that 1 byte binary reads was ideal LOL.
470
Programming Help / Re: C++ short delay when using CIN
« on: July 25, 2014, 01:53:02 pm »As far as I know the difference between stack and heap is that stack has limited size, it's not dynamic
Stack uses continuous memory, and by default is limited, in theory I could have the linker allocate more space, though I never touched that and never will, when using multiple threads, you are using stacks on each, and potentially wasting space that way. even as a non expert I know better
Perhaps for most people and their application stack will be enough, but bigger games, apps that process large files and memory, you will use the heap, as its size is limited by available RAM (including virtual), and is dynamic.
For what I am going to achieve I will use the heap, or rather I will use your vector suggestion I guess it takes care of more for me
Quote
(so the sizes must be known at compile time) and has limited scope (so it gets deleted when it goes out of scope). stl::containers are dynamic. Their size is usually not known at compile time, as you can always resize them and add/delete as much as you want.
stl::containers is definitely something I need then, since I would need to pass the objects between functions, as I like to keep it clean and not do everything in main say for example a file reading function, then passing the read large block to an encryption function and so forth, I know that the non dynamic, regular ways of doing things, it gets lost outside the function (scope). Something I definitely do not want at this point for my specific needs
Quote
As I said, there are many ways to do it. You could try the one I posted, I will try it too, and see how fast it is. I remember I tried many ways to make the fastest file loading possible and the fastest
I discovered the hard way back when I using GM that file functions were HORRIBLY, RIDICULOUSLY slow, but YYG must have assumed most people would use small files and never notice...... But try reading a larger binary and it's a PAIN....... They read 1 byte at a time, and I believe ENIGMA also, since it is compatible to its GML, also uses the same method.......
I believe with vector / container / new / methods file access should be near native speed though I have yet to try this I'm not at expert level yet and learning new things as I go along
In ENIGMA using current functions the most I've gotten was near 10MB/S binary. LOL ! The slowest P.O.S. drive I used back the days did no less than 30MB/s...... My native sustained read speed is 106-110MB/s, if not more, so with the right C++ code I should be able to achieve this. Now imagine making a MYST like game or some big adventure games using large assets, and someone has a SSD (they are becoming cheaper) I'm not sure it would be too convenient to load stuff at 10MB/s....it's a disgrace even for old generation PATA drives LOL.
Quote
I was able to get was this:Code: (edl) [Select]int load_csv(string fname, int kind, double radius)
{
model_primitive_begin(kind);
ifstream data(fname.c_str());
string str_line;
int line_num = 0;
float v[3];
int col;
//vector<vector<unsigned int> > benchmark_frames;
IN your example you are reading lines of text from a text file. I'm guessing, model information
Quote
If regular ENIGMA takes like 20 seconds to load the file, then this does it in less than 1. But I didn't try loading using the vector copy. That might be faster.
Imagine how long it takes in GM Probably close too.
When I get some time I will try experimenting a little, and see where it brings me
One thing I am never using is the built in file functions in ENIGMA, I will code my own. I already know how to add new functions and extensions to ENIGMA.
BTW speaking of that, if I were to code a function that uses containers, buckets, vectors, or whatever they are called, and stuff dynamically allocated (heap), in functions, can I use this in my ENIGMA projects. Example, if I use stl containers and vector and store a large 100 MB file into for example ResRead, and do something like return ResRead, can I pass back that 100MB back the function that was called in my enigma project ? If that is the case, then I could easily revamp the file functions and add faster more efficient ones for advanced game developers.
[/code]
471
Programming Help / Re: Can i use EDL and GML to make game?
« on: July 25, 2014, 12:40:20 pm »
"Can i use EDL and GML to make game"
That question seems quite clear to me.
Whilst ENIGMA itself is entirely C++ source (except LGM, its IDE which is JAVA), it does indeed accept GML (first thing one notices when running its IDE, which is LGM, is the similarity to another popular game making program ) The functions (GML, etc) call functions in the C++ source with the same name.
EDL is enigma specific function, and yes there are some issues here and there but the program is functional enough to make full games though it is not yet 100% compatible to GM, there are many workarounds one could use.
Documentation here:
http://enigma-dev.org/docs/Wiki/Documentation
ENIGMA specific functions (EDL)
http://enigma-dev.org/docs/Wiki/Category:Function:ENIGMA
All functions that exist
http://enigma-dev.org/docs/Wiki/Category:Function:All
Your game is then parsed and compiled to C++ and appended to the C++ engine along with your resources. All the hard work is done for you, graphics engine, processing, sound, physics, etc, by the C++ engine.
That question seems quite clear to me.
Whilst ENIGMA itself is entirely C++ source (except LGM, its IDE which is JAVA), it does indeed accept GML (first thing one notices when running its IDE, which is LGM, is the similarity to another popular game making program ) The functions (GML, etc) call functions in the C++ source with the same name.
EDL is enigma specific function, and yes there are some issues here and there but the program is functional enough to make full games though it is not yet 100% compatible to GM, there are many workarounds one could use.
Documentation here:
http://enigma-dev.org/docs/Wiki/Documentation
ENIGMA specific functions (EDL)
http://enigma-dev.org/docs/Wiki/Category:Function:ENIGMA
All functions that exist
http://enigma-dev.org/docs/Wiki/Category:Function:All
Your game is then parsed and compiled to C++ and appended to the C++ engine along with your resources. All the hard work is done for you, graphics engine, processing, sound, physics, etc, by the C++ engine.
472
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 10:42:55 pm »All of those containers will be allocated on the heap, not that it really matters.
Actually it does matter, there is limit on the size of an array you can use on the stack before you crash your program - I've found out the hard way when trying to use big arrays. If I will be manipulating large files 50MB, 100Mb, +++ the stack won't cut it
Quote
But you can just use a char vector. Like this little example I found:Code: (edl) [Select]#include <iostream>
There are MANY other ways to load a file into some kind of array. Some are slower (usually the C++ variants) and some are faster (for me C variants are usually faster). Like check this:
#include <iterator>
#include <fstream>
#include <vector>
int main()
{
// open the file:
std::ifstream file(filename, std::ios::binary);
// read the data:
std::vector<unsigned char> myData((std::istreambuf_iterator<unsigned char>(file)), std::istreambuf_iterator<unsigned char>());
//Now myData holds the file, so you can access them however you like
if (myData[0] == 'a') return 2;
return 0;
}
You don't use stdio for files ? Doesn't ENIGMA use stdio ? Isn't it faster ?
I would use that instead, not familiar with the above sounds more complicated for nothing. I've heard that with stdio and memory allocation someone managed to load a file at FULL speed (100MB/s) instead of the regular slower method of 10MB/s
473
Programming Help / Re: Can i use EDL and GML to make game?
« on: July 24, 2014, 10:32:04 pm »I'm really aware of C++. And i would like to learn much simplier language. Also i might misunderstand Enigma functions
Of course you can, I use EDL, GML and C++ in most of my projects. The whole ENIGMA engine is C++ and the GML/EDL you are using are C++ functions in the engine I've parted from G**MakerStudio. Just keep mind your EDL/C++/GML mixed projects will obviously not be compatible with GMS as GMS only allows GML
Also as far as EDL/GML it cannot get anymore simpler than that, you can consult the wiki docs and read how each function works, you can ask questions here on the forum for more clarifications, etc.
When I started using G**Maker I used D&D, but quickly moved towards code, and now I do everything by code 100%, faster, and so simple. If you are already familiar with logic, variable/types, and the basics, you will learn fast the rest that follows.
474
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 03:27:43 pm »I think it's safe to say that it closes file handles too. It was very long time ago when I heard that it didn't. Maximum amount of open though is limited if using POSIX C. It's 512 by default, but can be changed. So that is not a big issue
512 ok quite far from the 32, I guess 32 I was taking from GML lol! But anyhow I probably won't be needing that many file handles ! And yes better be safe and always free memory and close files, in practice, something I would always do anyway.
Quote
Your char array was used for that? Because you will have to use other specific functions to actually write to files, that are not tied to containers the data is stored in.
I know how to read and write blocks or bytes of data, but how else am I supposed to store read files in memory ? Let's say I want to read 100 bytes from a binary file, I would use char and store it as an array, easier to have individual access, for bigger files, can't use strings, so I'd have to allocate memory on the heap. What I want to do is not only read and store file in memory but have access to individual bytes and manipulate them (encryption, etc.).
475
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 12:45:21 pm »1) Yes, memory is freed at the end of the program if it either crashes or if you didn't free the resources. It's done by C++ runtime (in MinGW case it's libstdc++.dll). It sometimes won't release resource handles though, so if you open a file, but don't close it, then it's possible that over time you won't be able to open new files, as the maximum open files at once has a limit per process.
Interesting, ok so about memory what I knew was correct, but in regards to file handles, I was under the impression that those got automatically closed as well. As far as the maximum per process, it's 32 right So what happens if file handles don't get closed in such case, does it require a window restart ?
Quote
This freeing of memory is true for most devices and OS's. Only some embedded stuff still doesn't do it explicitly.
Well I'm using Windows and my target will be windows and maybe soon both windows and linux.
Quote
2) To get size you can use sizeof(). So sizeof(resMem) will return the number of bytes used. It's the same as doing sizeof(char)*5000.
ah yes sizeof forgot about that one. didn't think of using it that way.
Quote
3) For dynamic arrays (or actually arrays in general) you should use stl::containers. There is very little use in using the old C arrays anymore. The containers are fast, very optimized and releases you of many stupid tasks. Like freeing the memory,
So for storing reading/writing files, and in general you mean it's FASTER that way ? If I were to bench both methods one would be significantly faster ? Remember I am not entering any coding competition, so I would use what I know about and what works, but if one method is significantly faster than the other I would definitely use that.
Quote
as it's done automatically.
How would it know WHEN to free the memory ? Only at exit ? What if I wanted it to free earlier ?
Quote
In your array case I would suggest using a std::vector. So you could write this instead:
Do I have to use std::, I see that a lot in code, can't I just use using namespace std; ?
Quote
So pointers and "new"+"delete" is the bain of C. In C++ there are very few
I thought it was the opposite, that malloc and free are used in C, and that new and delete are C++.
Quote
The biggest thing I have written for myself in pure C++ is 10k line program for research purpose and it only used pointers in about 3 places, because of Abstract Base Class (ABS) usage.
I agree, not much user of pointers, but I intend to use it mostly for file I/O in my project since I will be handling larger data handling that is more than the stack can handle and for allocating memory size I don't know in advance I would have to use pointers in conjunction with new. But I see pointers, new and delete used in many places in ENIGMA's source
476
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 12:26:46 pm »It does take significantly longer to print to a command prompt than a Linux terminal, like we're talking 10 times slower if LGM outputted to a CMD when compiling than running all the JNA callbacks it does.
As I mentioned in my examples, the couts display quickly, when I run the executable the text is displayed right away, it is the "CIN" that takes time to be executed, meaning the cursor to take input takes 1 second to appear.
I've never had issues with displaying text otherwise
477
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 01:32:52 am »Didn't mean to say you should switch to pascal, I reference it because it's fresh in my memory and it's compiled like C++
I know that I was just mentioning this in passing. I remember acing the Pascal exam and made a big project and think it was one of the highest marked (bragging ) But oddly enough I know far more about C++ than Pascal as I have since not touched Pascal !
Quote
Gotcha, I thought you meant dynamic memory allocation, which I believe it's not possible unless you use an interpreted language. (the garbage collector)
I meant a dynamic way of allocating memory as shown above.
I'm not an "EXPERT" in C++ yet, though know enough about it to make full applications, console, some GUI, but to the level I can contribute BIG stuff to ENIGMA - and one thing I am a complete newbie with is graphics, so won't be making an enigma like engine in C++ anytime soon lol!
unless some E.T. puts probes in my brain and feeds me the knowledge, that's the only way I will ever reach that point given my luck
478
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 01:17:06 am »worked correctly (at least on pascal they do), but even on C++ you can have more than one return if you need it, to check that something did x or y you can then pass the integer for error management, I think.
Gotcha. and BTW I learned Pascal in school But I have not used Pascal a lot actually, so I forgot lots, I still remember readln and writeln lol.
Right now i'm sticking to C++, EDL, GML for a while should keep me busy and out of trouble lol!
Quote
Dynamic allocation on C++? Is that possible?
Let's say you want to declare an array but you don't know in advance the size, you can't do this
Code: (cpp) [Select]
int x = 100;
int array[x] ; //... etc, it needs a constant. so that won't work....
the new allows this.........
Here is an example,
Code: (cpp) [Select]
int i = 200;
char* p; p = new int[i];
Another example is you want to read a file and store it in memory,
you would get the file size first, store it in a variable and then declare the pointer and allocate RAM based on the file size (dynamic allocation).
There are many uses for that, such as creating data base reading into memory, reading files, using arrays of variable or unknown sizes, etc.
Hope I have this right
I'm going to be using this in my new dynamic resource engine
479
Programming Help / Re: C++ short delay when using CIN
« on: July 24, 2014, 12:52:14 am »
did not try compiling it, but assuming it won't compile because of the 2 returns, but again I can be wrong on that one.....Been a windows user forever and never had any problem. Done film, video, audio visual production, mutlimedia both hobby and professionally and never had issue. but again this is not a linux vs. windows debate really let's leave that for another topic
As to what your read, yes you have to free memory yourself to avoid memory leak within your app, memory not freed could be potential memory for other process/applications running, and you avoid the risk of stability/crashing or running out of memory, that is what they probably mean by that......as some would for example allocate new memory in a function but exit function without freeing it (creating a leak) etc.
I'll be using memory allocation (more likely dynamic allocation) for some of the stuff I have planned with my resource packer / reader and some of the stuff I will add to ENIGMA soon, hopefully if I have some time,
As to what your read, yes you have to free memory yourself to avoid memory leak within your app, memory not freed could be potential memory for other process/applications running, and you avoid the risk of stability/crashing or running out of memory, that is what they probably mean by that......as some would for example allocate new memory in a function but exit function without freeing it (creating a leak) etc.
I'll be using memory allocation (more likely dynamic allocation) for some of the stuff I have planned with my resource packer / reader and some of the stuff I will add to ENIGMA soon, hopefully if I have some time,
480
Programming Help / Re: C++ short delay when using CIN
« on: July 23, 2014, 11:56:51 pm »I am not going to open another topic, but I have a slightly O/T question
it concerns dynamic memory allocation,
what happens if you use NEW but don't use DELETE and you exit your program. Will the OS automatically free any memory allocated by your CPP, or will the memory not be freed.
Let's say for exampleCode: (cpp) [Select]char* resMem = new char[5000];
What happens if I let the program exit or forcibly exit and don't use delete ? Will 5000 bytes of RAM be lost in space unless I restart windows or use a RAM freeing tool or will the OS automatically free it upon exit ?
Again this is a question out of curiosity, as I know better than to not free RAM I allocate
2) (yes it's a 2 part question). What's the command so I find out HOW MUCH RAM was allocated ? In the example above I know that 5000 bytes were allocated as char = 1 byte, right ? for an int it would have been 4 * 5000, etc. so how do I find out, in the example above, how much RAM was allocated.
Thanks
and eds don't worry about it, I was wondering why my code was modified was afraid maybe I switched to a parallel universe
Memory allocation... No idea how that works... Do you eat it with a fork?
No problem Ds2, copy paste was the easiest way and I did'nt check for consistency with your code, and I should have, it is good practice to do so.
You can eat it with your hands if you wish Memory allocation is not that hard, basically they teach you that in kindergarten nowadays so you mashed my code, I forgive you BTW that would not compile
Tomorrow I will try the CIN on an XP machine.
As far as memory I'm assuming memory does get freed by the OS, and that the delete would be avoiding any memory leak/hogs within the program itself / process running, unnecessarily.