|
zakkas2483 wrote: PTSTR lptSub = NULL;
lptSub = new TCHAR[25];
It doesn't matter much.
You should use ZeroMemory to keep the buffer empty. Try something like :
ZeroMemory(lptSub,BUF_SIZE);
ZeroMemory(lptMessage,BUF_SIZE2);
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
That's one of the most ridiculous things I've ever heard. What is the purpose of wasting CPU cycles like this? If you are worried nothing will be copied into the buffers and they will be used as strings (which is sometimes the case by design), just set the first character to zero.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: That's one of the most ridiculous things I've ever heard.
You've been around CP long enough to know that far more ridiculous posts have been made. There's a big difference between a wrong/bad post and one that just lacks efficiency.
Joe Woodbury wrote: What is the purpose of wasting CPU cycles like this?
For one-time initializations, the wasted CPU cycles, if any, would be negligible.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
I think it's very bad advice. It's not just wasting cycles, it's creating code for no reason. Code that solves nothing is bad code.
(Also please note the qualifier "one of the most"--and the reason was saying "you should" do this.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: That's one of the most ridiculous things I've ever heard
I'm finding it funny you put this much effort to point out a trivial mistake. Whenever I define a structure, I zero them up with their size, I typed with the same intent without thinking much. You are finding that the "most ridiculous" ?? Funny. This is a trivia! but of course you've got the right to beat your chest and feel proud of point that mission-cracking bug.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
It's not only a waste of CPU cycles, it accomplishes nothing. To suggest that someone "should" do this is what's so ridiculous.
VuNic wrote: You are finding that the "most ridiculous"
one of the most.
And again, the problem was that you didn't phrase this as "this is a pointless habit of mine", but as something he "should" do.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
Joe Woodbury wrote: It's not only a waste of CPU cycles, it accomplishes nothing. To suggest that someone "should" do this is what's so ridiculous.
I explained the reason in my last reply. I just mistook it for yet another structure. Your hatred just eclipses your valid point. Trivial though
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
VuNic wrote: your hatred just eclipses your valid point.
Good heavens.
Methinks you need to get a dictionary.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
ZeroMemory(JoeWoodbury,sizeof(JoeWoodbury));
Get Zeroed out!
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Perhaps you meant delete JoeWoodbury; since zeroing me out means there's still a shell of me around.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
If there's a delete , there would always be a new round the corner. No risk taken. Let's just "neutralize" the enemy. Zero-out and get frozen.
He never answers anyone who replies to him. I've taken to calling him a retard, which is not fair to retards everywhere.-Christian Graus
|
|
|
|
|
Joe Woodbury wrote: ...it accomplishes nothing.
Actually it does -- it correctly sets the first byte of that string to nul. The fact that it also initializes the rest of the string (which may or may not be a requirement) does not negate that.
Code that "accomplishes nothing" would resemble:
char *p = NULL;
p = new char[100]; Joe Woodbury wrote: And again, the problem was that you didn't phrase this as "this is a pointless habit of mine", but as something he "should" do.
One word does this to you? The word "should" is not one of those absolute words like "always" and "must" and "never." To say to someone, "You should put your coat on" is not the same as "You must put your coat on." While the latter might be the optimal suggestion, the former suggestion is simply one that is better than what's currently being done. Since the OP was doing no initialization at all, any suggestion could be qualified with "should" and be correct.
"Old age is like a bank account. You withdraw later in life what you have deposited along the way." - Unknown
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
|
|
|
|
|
p[0] = 0 sets the first character to NULL. The rest is just wasteful fluff. It's bad form because it shows coding out of habit, not by deliberate thought.
DavidCrow wrote: One word does this to you
Yes.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
|
You heard very few thing in you life, I suppose. I guess you're very young.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
"one of"
"one of"
"one of"
sigh
Yeah, I'm young. Compared to my father. (Been around too long, actually, and have long run out of patience for weird code habits that do nothing but chew up CPU cycles and which require more typing than that which is necessary.)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
There's nothing bad in initializing a buffer. At least it's useless. But it is also harmless.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
zakkas2483 wrote: _tcscat( lptMessage, L"TEMP::" );
Try changing that to
_tcscpy( lptMessage, L"TEMP::" );
so you initialise lptMessage properly without relying on its previous content.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
To be pedantic, this should be wcscpy(lptMessage, L"TEMP::"); (else use the _T() macro)
(Of course to be even more pedantic, why he's allocating local buffers 25 characters long instead of just using a simple array such as wchar_t message[25]; is senseless. Unless he's controlling the lengths of the strings elsewhere, he should also be using the wcscpy_s and wcscat_s .)
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
You're quite right - I did mean to point that out (honest!).
Joe Woodbury wrote: (Of course to be even more pedantic, why he's allocating local buffers 25 characters long instead of just using a simple array such as wchar_t message[25]; is senseless. Unless he's controlling the lengths of the strings elsewhere, he should also be using the wcscpy_s and wcscat_s.)
I'm always tempted to say "why don't you just use a string class?!?!". CString or std::string, they both make simple string manipulation a hell of a lot easier.
Java, Basic, who cares - it's all a bunch of tree-hugging hippy cr*p
|
|
|
|
|
Stuart Dootson wrote: I'm always tempted to say "why don't you just use a string class?!?!". CString or std::string, they both make simple string manipulation a hell of a lot easier.
I agree, but I assume he was doing some assignment which prohibited such.
Anyone who thinks he has a better idea of what's good for people than people do is a swine.
- P.J. O'Rourke
|
|
|
|
|
No.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Are you using C or C++ ? If you are using C++, I suggest you use new instead of malloc.
For instance:
LPTSTR lptSub = new TCHAR[25];
LPTSTR lptMessage = new TCHAR[256];
_tcscat( lptMessage, lptSub );
Be carefull that when you call _tcscat, your strings should contain something (and not garbage). OTherwise the result will be a big mess .
|
|
|
|
|
Thanks but ...
I am having strange problem.
PTSTR lptSub = new TCHAR[25];
LPTSTR lptMessage = new TCHAR[256];
somefun(lptSub);
MessageBox(NULL,lptSub,L"ABC",1);
///Above line display result perfectly
// Do something with the strings
_tcscat( lptMessage, L"TEMP::" );
_tcscat( lptMessage, lptSub );
MessageBox(NULL,lptMessage,L"ABC",1);
///Above line display only TEMP::
I am getting why???
|
|
|
|
|
zakkas2483 wrote: // Do something with the strings
_tcscat( lptMessage, L"TEMP::" );
_tcscat( lptMessage, lptSub )
I suppose you should pass explicitely the lenght of the buffer, since you've allocated dinamically it.
Side note, you should always check the return value of the new operator.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|