473,387 Members | 1,641 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,387 software developers and data experts.

How to fix this structure?

Hi everyone. I am trying to finish my homework, but I seem not to
figure out how to fix this structure that seems to make wrong output.
What this program should do is use structure to save the word and line
number on which it was in array pointer using malloc and print them
out alphabetized (no duplicates).

Most of it works, except the words seem to be corrupted. Here is a
code, if anyone can help me it would help so much since I've been
working on this for a really long time. I tried even changing '\0' to
NULL, but then program errored out.
Here is my code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
typedef struct list
{
int linenum;
char word[30];
} LIST;

void main()
{
LIST *p[1000], *holder;
int line = 1;
int pcounter = 0;
char buffer[40];
int buffercounter = 0;
char letter = ' ';
int inword = 0;
int i;
int compare;
int shouldstore = 1;
int x,y;
while (letter != EOF)
{
letter = getchar();
if ( (letter >= 'a' && letter <= 'z') || (letter >=
'A' && letter <= 'Z') )
{
letter = toupper(letter);
inword = 1;
buffer[buffercounter] = letter;
buffercounter++;
}
else if (letter == '\n')
{
line++;
if (inword == 1)
{
inword = 0;
buffercounter++;
buffer[buffercounter] = '\0';
buffercounter = 0;
if (pcounter == 0)
{
p[pcounter] = (LIST*) malloc (sizeof(LIST));
strcpy( p[pcounter]->word , buffer);
p[pcounter]->linenum = line;
pcounter++;
}
else
{
for (i = 0; i < pcounter; i++)
{
compare = strcmp(p[i]->word, buffer);
if (compare == 0)
{
shouldstore = 0;
}
}
if (shouldstore == 0)
{
shouldstore = 1;
}
else
{
p[pcounter] = (LIST*) malloc (sizeof(LIST));
strcpy( p[pcounter]->word, buffer);
p[pcounter]->linenum = line;
pcounter++;
}
}

}
else
{
buffercounter = 0;
}
}
else
{
if (inword == 1)
{
inword = 0;
buffercounter++;
buffer[buffercounter] = '\0';
if (pcounter == 0)
{
p[pcounter] = (LIST*) malloc (sizeof(LIST));
strcpy( p[pcounter]->word , buffer);
p[pcounter]->linenum = line;
pcounter++;
}
else
{
for (i = 0; i < pcounter; i++)
{
compare = strcmp(p[i]->word, buffer);
if (compare == 0)
{
shouldstore = 0;
}
}
if (shouldstore == 0)
{
shouldstore = 1;
}
else
{
p[pcounter] = (LIST*) malloc (sizeof(LIST));
strcpy( p[pcounter]->word, buffer);
p[pcounter]->linenum = line;
pcounter++;
}
}
}
else
{
buffercounter = 0;
}
}
}

for(x = 0; x < pcounter; x++)
for(y = 0; y < pcounter-1; y++)
{
compare = strcmp(p[y]->word, p[y+1]->word);
if( compare < 0)
{
holder = p[y+1];
p[y+1] = p[y];
p[y] = holder;
}
}

for (x = 0; x < pcounter; x++)
{
printf("\nThe word %s was on line %d", p[x]->word, p[x]->linenum);
}
}
Nov 14 '05 #1
18 1549
On 17 May 2004 11:44:47 -0700, ch************@earthlink.net (Chris R.)
wrote:
void main()
Your first problem: this makes your program invoke undefined behaviour.
Instead, use:

int main(void)

else if (letter == '\n')
{
line++;
if (inword == 1)
{
inword = 0;
buffercounter++;
Remove this last line. buffercounter already points one past the end of
the string, so this allows an extra character to creep in.
buffer[buffercounter] = '\0';


Instead of this here, you could put

memset( buffer, 0, sizeof buffer );

at the end of else clause, and eliminate both of the previous lines.

Now, shall we talk about checking to make sure that entered words aren't
too long? That buffer can hold 40 characters, but the structure can only
hold 30? Instead of strcpy, use strncpy, otherwise you're writing
Micorosft-quality code.

I didn't look any farther than this, since your only complaint was the
corruption of the words on the list.
--
#include <standard.disclaimer>
_
Kevin D Quitt USA 91387-4454 96.37% of all statistics are made up
Per the FCA, this address may not be added to any commercial mail list
Nov 14 '05 #2
"Chris R." wrote:

Hi everyone. I am trying to finish my homework, but I seem not to
figure out how to fix this structure that seems to make wrong output.
What this program should do is use structure to save the word and line
number on which it was in array pointer using malloc and print them
out alphabetized (no duplicates).

Most of it works, except the words seem to be corrupted. Here is a
code, if anyone can help me it would help so much since I've been
working on this for a really long time. I tried even changing '\0' to
NULL, but then program errored out.

Here is my code:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

typedef struct list
{
int linenum;
char word[30];
} LIST;

void main()
{
LIST *p[1000], *holder;
int line = 1;
int pcounter = 0;
char buffer[40];
int buffercounter = 0;
char letter = ' ';
int inword = 0;
int i;
int compare;
int shouldstore = 1;
int x,y;

while (letter != EOF)


I stopped here, because you already have two glaring errors. main
returns int, not void, so say and do so. Second, a char cannot
hold EOF, so letter must be an int.

Fix your excessive indentation. Use spaces, not tabs. Don't cast
malloc. Limit line length to 65 chars for usenet posting.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
Nov 14 '05 #3
"Kevin D. Quitt" wrote:
buffer[buffercounter] = '\0';


Instead of this here, you could put

memset( buffer, 0, sizeof buffer );

at the end of else clause, and eliminate both of the previous lines.

Why do you think that is an improvement?


Brian Rodenborn
Nov 14 '05 #4
On Tue, 18 May 2004 16:45:43 GMT, Default User
<fi********@boeing.com.invalid> wrote:

"Kevin D. Quitt" wrote:
memset( buffer, 0, sizeof buffer );


Why do you think that is an improvement?


Stewardship. When you have a buffer full of nuls, you always have a valid
string that contains no detritus. If this were in a time-critical section
of code, I wouldn't use memset, but for clean operation I would prefer it.
--
#include <standard.disclaimer>
_
Kevin D Quitt USA 91387-4454 96.37% of all statistics are made up
Per the FCA, this address may not be added to any commercial mail list
Nov 14 '05 #5
"Kevin D. Quitt" wrote:

On Tue, 18 May 2004 16:45:43 GMT, Default User
<fi********@boeing.com.invalid> wrote:
"Kevin D. Quitt" wrote:
memset( buffer, 0, sizeof buffer );


Why do you think that is an improvement?


Stewardship. When you have a buffer full of nuls, you always have a valid
string that contains no detritus. If this were in a time-critical section
of code, I wouldn't use memset, but for clean operation I would prefer it.


Who cares what the rest of the memory buffer has in it when you are
dealing with strings?

What happens when the section of code is cut out and put in a function
which has the buffer passed in?

What happens if the user gets away from using those fixed-sized char
buffers and moves to dynamically allocated ones?
If your goal is to null-terminate a string, then null-terminate the
string. White-washing an entire buffer makes no sense and was poor
advice to give to a newbie.

Brian Rodenborn
Nov 14 '05 #6
"Default User" <fi********@boeing.com.invalid> wrote in message
news:40***************@boeing.com.invalid...
"Kevin D. Quitt" wrote:

On Tue, 18 May 2004 16:45:43 GMT, Default User
<fi********@boeing.com.invalid> wrote:
"Kevin D. Quitt" wrote:
> memset( buffer, 0, sizeof buffer );

Why do you think that is an improvement?
Stewardship. When you have a buffer full of nuls, you always have a valid string that contains no detritus. If this were in a time-critical section of code, I wouldn't use memset, but for clean operation I would prefer

it.
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?

What happens when the section of code is cut out and put in a function
which has the buffer passed in?

What happens if the user gets away from using those fixed-sized char
buffers and moves to dynamically allocated ones?
If your goal is to null-terminate a string, then null-terminate the
string. White-washing an entire buffer makes no sense and was poor
advice to give to a newbie.

ummmm... I use calloc() sometimes...

....am i bad?

--
Mabden
Nov 14 '05 #7
On Wed, 19 May 2004 20:42:04 GMT, Default User
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?
It's common for newbies to mess up string termination, especially when
they build strings by themselves. The method I suggested prevents
termination problems and makes debugging easier because the strings are
clearly delineated in memory.

What happens when the section of code is cut out and put in a function
which has the buffer passed in?
What happens if the user gets away from using those fixed-sized char
buffers and moves to dynamically allocated ones?
These two are the same question. And the answer is easy: you can zero the
buffer by using either the length passed to the function, or to some
guaranteed-minimum size if you're dumb enough not to pass the size. And
what happens when they forget to nul-terminate the character array or put
the nul in the wrong place?

If your goal is to null-terminate a string, then null-terminate the
string.
My goal is to write code that is easy to debug and that works because it's
supposed to, and not by accident.

White-washing an entire buffer makes no sense and was poor
advice to give to a newbie.


Say rather that you can't see the sense in it; that's one of your
problems, not mine.

--
#include <standard.disclaimer>
_
Kevin D Quitt USA 91387-4454 96.37% of all statistics are made up
Per the FCA, this address may not be added to any commercial mail list
Nov 14 '05 #8
"Kevin D. Quitt" wrote:

On Wed, 19 May 2004 20:42:04 GMT, Default User
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?
It's common for newbies to mess up string termination, especially when
they build strings by themselves. The method I suggested prevents
termination problems and makes debugging easier because the strings are
clearly delineated in memory.


So you advocate some cargo-cult programming to prevent them from making
some mistake, instead of teaching them what null-termination is, what it
does, and how to successfully do it at the correct point in the program?
What happens when the section of code is cut out and put in a function
which has the buffer passed in?
What happens if the user gets away from using those fixed-sized char
buffers and moves to dynamically allocated ones?


These two are the same question. And the answer is easy: you can zero the
buffer by using either the length passed to the function, or to some
guaranteed-minimum size if you're dumb enough not to pass the size.


Adding needless complexity to the program for no benefit.
And
what happens when they forget to nul-terminate the character array or put
the nul in the wrong place?


Then they have programming error. One that should be easy to diagnose
and locate, once they've been taught how strings work, rather than
covering up the situation by blanking out entire buffers.
If your goal is to null-terminate a string, then null-terminate the
string.


My goal is to write code that is easy to debug and that works because it's
supposed to, and not by accident.


Yet your proposed solution does none of that.
White-washing an entire buffer makes no sense and was poor
advice to give to a newbie.


Say rather that you can't see the sense in it; that's one of your
problems, not mine.


As you say. However that same answer can be given to any disagreement
about programming methodology. I prefer to attack the code, not the
coder in this case.

I'm basing my assertions on my experiences. You may have different ones.

Brian Rodenborn
Nov 14 '05 #9
On Wed, 19 May 2004 20:42:04 GMT, in comp.lang.c , Default User
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?


the maintenance team do, when you go and strncpy something into it.

--
Mark McIntyre
CLC FAQ <http://www.eskimo.com/~scs/C-faq/top.html>
CLC readme: <http://www.angelfire.com/ms3/bchambless0/welcome_to_clc.html>
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
Nov 14 '05 #10
In <vv********************************@4ax.com> Kevin D. Quitt <KQ**********@IEEIncUNMUNG.com> writes:
On Wed, 19 May 2004 20:42:04 GMT, Default User
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?


It's common for newbies to mess up string termination, especially when
they build strings by themselves. The method I suggested prevents
termination problems and makes debugging easier because the strings are
clearly delineated in memory.


The method you suggested merely masks the newbie's mistake of forgetting
the string terminator. It's good for people who know what they're doing
so that they can deliberately omit the string terminator, but I wouldn't
include newbies in this category.

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #11
"Kevin D. Quitt" wrote:
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you
are dealing with strings?


It's common for newbies to mess up string termination, especially
when they build strings by themselves. The method I suggested
prevents termination problems and makes debugging easier because
the strings are clearly delineated in memory.


When you use binary comparison of output files to verify that
changes have not harmed program action, you get highly upset at
programmers who leave areas of that output holding random junk.
If it must be junk, at least let it be junk generated by that
particular program run. However, the preferred junk value is all
bits zero.

--
Chuck F (cb********@yahoo.com) (cb********@worldnet.att.net)
Available for consulting/temporary embedded and systems.
<http://cbfalconer.home.att.net> USE worldnet address!
Nov 14 '05 #12
On Thu, 20 May 2004 22:14:52 GMT, Default User
<fi********@boeing.com.invalid> wrote:
I'm basing my assertions on my experiences. You may have different ones.


Clearly. My specialty is ultra-reliable embedded systems; I have software
on several operational spacecraft, numerous medical devices, and on
large-scale industrial metal-forming robots. Bugs are not an option.

--
#include <standard.disclaimer>
_
Kevin D Quitt USA 91387-4454 96.37% of all statistics are made up
Per the FCA, this address may not be added to any commercial mail list
Nov 14 '05 #13
Mark McIntyre <ma**********@spamcop.net> wrote:
On Wed, 19 May 2004 20:42:04 GMT, in comp.lang.c , Default User
<fi********@boeing.com.invalid> wrote:
Who cares what the rest of the memory buffer has in it when you are
dealing with strings?
the maintenance team do, when you go and strncpy something into it.


Then don't use strncpy(). It's a broken function, anyway. Use strncat().
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---


Furrfu...

Richard
Nov 14 '05 #14
In <40****************@news.individual.net> rl*@hoekstra-uitgeverij.nl (Richard Bos) writes:
Mark McIntyre <ma**********@spamcop.net> wrote:
On Wed, 19 May 2004 20:42:04 GMT, in comp.lang.c , Default User
<fi********@boeing.com.invalid> wrote:
>Who cares what the rest of the memory buffer has in it when you are
>dealing with strings?


the maintenance team do, when you go and strncpy something into it.


Then don't use strncpy(). It's a broken function, anyway. Use strncat().


Nonsense! strncpy() is a perfectly good function *if* used for the
purpose it was designed: manipulating a data format not quite unlike C
strings. Its only objectionable feature is its name, which starts with
the str prefix, misleading the people who are too lazy to properly read
the specifications of the functions they use.

Dan
--
Dan Pop
DESY Zeuthen, RZ group
Email: Da*****@ifh.de
Nov 14 '05 #15
On Mon, 24 May 2004 08:23:59 GMT, in comp.lang.c ,
rl*@hoekstra-uitgeverij.nl (Richard Bos) wrote:
Mark McIntyre <ma**********@spamcop.net> wrote:
On Wed, 19 May 2004 20:42:04 GMT, in comp.lang.c , Default User
<fi********@boeing.com.invalid> wrote:
>Who cares what the rest of the memory buffer has in it when you are
>dealing with strings?
the maintenance team do, when you go and strncpy something into it.


Then don't use strncpy(). It's a broken function, anyway.


This may be true, but its largely irrelevant don't you think?
Use strncat().


Since this function does something different. I'm not absolutely convinced
you can use it.

--
Mark McIntyre
CLC FAQ <http://www.eskimo.com/~scs/C-faq/top.html>
CLC readme: <http://www.angelfire.com/ms3/bchambless0/welcome_to_clc.html>
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
Nov 14 '05 #16
Mark McIntyre <ma**********@spamcop.net> wrote:
On Mon, 24 May 2004 08:23:59 GMT, in comp.lang.c ,
rl*@hoekstra-uitgeverij.nl (Richard Bos) wrote:
Mark McIntyre <ma**********@spamcop.net> wrote:
On Wed, 19 May 2004 20:42:04 GMT, in comp.lang.c , Default User
<fi********@boeing.com.invalid> wrote:

>Who cares what the rest of the memory buffer has in it when you are
>dealing with strings?

the maintenance team do, when you go and strncpy something into it.
Then don't use strncpy(). It's a broken function, anyway.


This may be true, but its largely irrelevant don't you think?


Since strncpy() doesn't occur in the OP's code, it itself is irrelevant
to this thread, yes. Its brokenness is not really irrelevant to
maintenance - I'd certainly distrust code that memset() an array and
then strncpy()d into it, if only because strncpy() _itself_ already
zero-pads its destination.
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---
----== Posted via Newsfeed.Com - Unlimited-Uncensored-Secure Usenet News==----
http://www.newsfeed.com The #1 Newsgroup Service in the World! >100,000 Newsgroups
---= 19 East/West-Coast Specialized Servers - Total Privacy via Encryption =---


Bork, bork, bork.

Richard
Nov 14 '05 #17
rl*@hoekstra-uitgeverij.nl (Richard Bos) wrote in message news:<40****************@news.individual.net>...

Since strncpy() doesn't occur in the OP's code, it itself is irrelevant
to this thread, yes. Its brokenness is not really irrelevant to
maintenance - I'd certainly distrust code that memset() an array and
then strncpy()d into it, if only because strncpy() _itself_ already
zero-pads its destination.


Er - but only sometimes. Isn't this why it's often regarded as
broken? Or am I missing the point here?
Nov 14 '05 #18
jj*@bcs.org.uk (J. J. Farrell) wrote:
rl*@hoekstra-uitgeverij.nl (Richard Bos) wrote in message news:<40****************@news.individual.net>...

Since strncpy() doesn't occur in the OP's code, it itself is irrelevant
to this thread, yes. Its brokenness is not really irrelevant to
maintenance - I'd certainly distrust code that memset() an array and
then strncpy()d into it, if only because strncpy() _itself_ already
zero-pads its destination.


Er - but only sometimes. Isn't this why it's often regarded as
broken? Or am I missing the point here?


Yes, it is. But consider:

char buf[SIZE];
memset(buf, 0, SIZE);
strncpy(buf, src, SIZE);

This is incorrect. strncpy() copies exactly SIZE chars into buf,
overwriting _all_ of the memory you've set. Worse, if scr is at least
SIZE chars long, excluding its terminal null, you've just unterminated
your buffer, and what you have is no longer a string.
All very well, you say, but that code is broken. Just correct it to:

char buf[SIZE+1];
memset(buf, 0, SIZE+1);
strncpy(buf, src, SIZE);

Sure, that's correct. The terminating null is now guaranteed. It's also
quite inefficient, since you're overwriting the first SIZE chars of buf
twice - once using memset(), once using strncpy(). All you need to write
is the last char of buf; you don't need to blot the entire array. This
is sufficient:

char but[SIZE+1];
buf[SIZE]=0;
strncpy(buf, src, SIZE);

And that's why I say that code which uses memset() on an area it then
strncpy()'s into is dubious: at the very least, it suggests that the
programmer wasn't very clear on what strncpy() actually _does_.

Richard
Nov 14 '05 #19

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

2
by: vikas | last post by:
I have following structure in c++. typedef struct MMF_result_struct { int action; char text; int cols,rows; int month,day,year; } MMF_result; Now this structure is shared between C++ and C#...
4
by: marco_segurini | last post by:
Hi, From my VB program I call a C++ function that gets a structure pointer like parameter. The structure has a field that contains the structure length and other fields. My problem is that...
8
by: Charles Law | last post by:
Can anyone suggest how I would marshal a variable length structure back from an API call. Specifically, I am looking at the WaitForDebugEvent function, which returns a DEBUG_EVENT structure. ...
15
by: Charles Law | last post by:
I have adapted the following code from the MSDN help for PropertyInfo SetValue. In the original code, the structure MyStructure is defined as a class MyProperty, and it works as expected. There is...
3
by: Kiran B. | last post by:
Hi, I am new to .net. I have two Data Structure Type ... Sturcture A and Structure B. Structure A Public Fname as String Public LastName as String Public City as String Public Zip as String...
14
by: Dennis | last post by:
If I have a structure like; Public Structure myStructureDef Public b() as Byte Public t as String End Structure If I pass this structure, will the values in the array b be stored on the...
10
by: David Fort | last post by:
Hi, I'm upgrading a VB6 app to VB.net and I'm having a problem with a call to a function provided in a DLL. The function takes the address of a structure which it will fill in with values. I...
11
by: Lance | last post by:
Hi all, I've got a some structures defined as ////// <StructLayout(LayoutKind.Sequential)Public Structure GM_LayerInfo_t Public mDescription As String Public mNativeRect As GM_Rectangle_t...
4
by: eBob.com | last post by:
In my class which contains the code for my worker thread I have ... Public MustInherit Class Base_Miner #Region " Delegates for accessing main UI form " Delegate Sub DelegAddProgressBar(ByVal...
5
by: =?Utf-8?B?QXlrdXQgRXJnaW4=?= | last post by:
Hi Willy, Thank you very much for your work. C++ code doesnot make any serialization. So at runtime C# code gives an serialization error at "msg_file_s sa = (msg_file_s) bf.Deserialize(ms);"...
0
by: taylorcarr | last post by:
A Canon printer is a smart device known for being advanced, efficient, and reliable. It is designed for home, office, and hybrid workspace use and can also be used for a variety of purposes. However,...
0
by: Charles Arthur | last post by:
How do i turn on java script on a villaon, callus and itel keypad mobile phone
0
by: aa123db | last post by:
Variable and constants Use var or let for variables and const fror constants. Var foo ='bar'; Let foo ='bar';const baz ='bar'; Functions function $name$ ($parameters$) { } ...
0
BarryA
by: BarryA | last post by:
What are the essential steps and strategies outlined in the Data Structures and Algorithms (DSA) roadmap for aspiring data scientists? How can individuals effectively utilize this roadmap to progress...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
0
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.