473,320 Members | 2,012 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,320 software developers and data experts.

comparing sizes of two structures

Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?

Mar 7 '07 #1
20 1867
su**************@yahoo.com, India wrote:
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
Either, it depends on the types and the implementation.

--
Ian Collins.
Mar 7 '07 #2
su**************@yahoo.com, India wrote:
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
It depends on the compiler and the characteristics, (mainly alignment
requirements), of your types.

Mar 7 '07 #3
On 7 Mar 2007 00:16:50 -0800, "su**************@yahoo.com, India"
<su**************@yahoo.comwrote:
>Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
They could be the same or they could be different. It depends on the
exact types of TYPE* and on the compiler. Compilers can add padding in
order to align fields on their natural boundaries, and there is no
guarantee that one compiler will pack fields the same as another
compiler, especially so when the compilers target different platforms.

Try compiling and running the following:

#include <stddef.h>
#include <stdio.h>

typedef char TYPE1;
typedef double TYPE2;
typedef int TYPE3;
typedef short TYPE4;
typedef long TYPE5;

struct s1
{
TYPE1 d1;
TYPE2 d2;
TYPE3 d3;
TYPE4 d4;
TYPE5 d5;
} var_one;

struct s2
{
TYPE2 d1;
TYPE5 d2;
TYPE1 d3;
TYPE3 d4;
TYPE4 d5;
} var_two;

int main(void)
{
printf("s1 offsets:\n");
printf("offsetof(d1) = %d\n", (int)offsetof(struct s1, d1));
printf("offsetof(d2) = %d\n", (int)offsetof(struct s1, d2));
printf("offsetof(d3) = %d\n", (int)offsetof(struct s1, d3));
printf("offsetof(d4) = %d\n", (int)offsetof(struct s1, d4));
printf("offsetof(d5) = %d\n", (int)offsetof(struct s1, d5));

printf("\n");
printf("s2 offsets:\n");
printf("offsetof(d1) = %d\n", (int)offsetof(struct s2, d1));
printf("offsetof(d2) = %d\n", (int)offsetof(struct s2, d2));
printf("offsetof(d3) = %d\n", (int)offsetof(struct s2, d3));
printf("offsetof(d4) = %d\n", (int)offsetof(struct s2, d4));
printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));

return 0;
}

My conforming C implementation outputs:

s1 offsets:
offsetof(d1) = 0
offsetof(d2) = 8
offsetof(d3) = 16
offsetof(d4) = 20
offsetof(d5) = 24

s2 offsets:
offsetof(d1) = 0
offsetof(d2) = 8
offsetof(d3) = 12
offsetof(d4) = 16
offsetof(d5) = 20
Press any key to continue

Regards
--
jay
Mar 7 '07 #4
su**************@yahoo.com, India <su**************@yahoo.comwrote:
>How do the sizes of var_one and var_two compare - will they be the
same or different ?
Like others have said, it depends, but I'd answer in general "probably
different".

In the last big project I worked on, we'd allocate tons of structures at
run time, and the platform was relatively limited in memory. As part of
our optimizations, we went back and rearranged the fields in the structs
by hand so the compiler would put less padding in.

We realized significant memory savings.

-Beej

Mar 7 '07 #5
su**************@yahoo.com, India wrote:
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
Yes, one or the other.

Why do you care?

--
Chris "electric hedgehog" Dollin
"Possibly you're not recalling some of his previous plans." Zoe, /Firefly/

Mar 7 '07 #6
jaysome wrote:
On 7 Mar 2007 00:16:50 -0800, "su**************@yahoo.com, India"
<su**************@yahoo.comwrote:
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
[ ... ]
Try compiling and running the following:

#include <stddef.h>
#include <stdio.h>

typedef char TYPE1;
typedef double TYPE2;
typedef int TYPE3;
typedef short TYPE4;
typedef long TYPE5;

struct s1
{
TYPE1 d1;
TYPE2 d2;
TYPE3 d3;
TYPE4 d4;
TYPE5 d5;
} var_one;

struct s2
{
TYPE2 d1;
TYPE5 d2;
TYPE1 d3;
TYPE3 d4;
TYPE4 d5;
} var_two;

int main(void)
{
printf("s1 offsets:\n");
printf("offsetof(d1) = %d\n", (int)offsetof(struct s1, d1));
printf("offsetof(d2) = %d\n", (int)offsetof(struct s1, d2));
printf("offsetof(d3) = %d\n", (int)offsetof(struct s1, d3));
printf("offsetof(d4) = %d\n", (int)offsetof(struct s1, d4));
printf("offsetof(d5) = %d\n", (int)offsetof(struct s1, d5));

printf("\n");
printf("s2 offsets:\n");
printf("offsetof(d1) = %d\n", (int)offsetof(struct s2, d1));
printf("offsetof(d2) = %d\n", (int)offsetof(struct s2, d2));
printf("offsetof(d3) = %d\n", (int)offsetof(struct s2, d3));
printf("offsetof(d4) = %d\n", (int)offsetof(struct s2, d4));
printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));

return 0;
}
Why do cast the type size_t value yielded by offsetof into int?

<snip>

Mar 7 '07 #7
santosh wrote:
jaysome wrote:
(quelle snippage!)
> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));

return 0;
}

Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?

--
Chris "electric hedgehog" Dollin
The shortcuts are all full of people using them.

Mar 7 '07 #8
Chris Dollin wrote:
santosh wrote:
jaysome wrote:

(quelle snippage!)
printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));

return 0;
}
Why do cast the type size_t value yielded by offsetof into int?

So they can print them using %d?
I know that. I would've myself used %lu, if %zu was not possible,
(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).

So it was a bit strange.

Mar 7 '07 #9
santosh wrote:
Chris Dollin wrote:
>santosh wrote:
>>jaysome wrote:
(quelle snippage!)
>>> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));

return 0;
}
Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?

I know that. I would've myself used %lu, if %zu was not possible,
So you'd cast to long instead of int.
(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).
Microsoft is one of funny vendors who have long smaller than size_t.

Yevgen
Mar 7 '07 #10
hi,
you can handle this byte alignment issue by using
__attribute__((__packed__)) with each structure element. then each one
of them will be allocated only minimum number of bytes needed.You can
save the memory requirements if u have huge structures.
thanx.
rk.
su**************@yahoo.com, India wrote:
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
Mar 7 '07 #11
On 7 Mar 2007 06:54:09 -0800, "Rahul" <ra*************@gmail.com>
wrote:
>you can handle this byte alignment issue by using
__attribute__((__packed__)) with each structure element. then each one
of them will be allocated only minimum number of bytes needed.You can
save the memory requirements if u have huge structures.
This is an implementation specific feature and is not portable.

When you are offering implementation specific suggestions, it would be
a very good idea to mark it as such.

Have a nice day,
Pradeep
--
All opinions are mine and do not represent the views or
policies of my employer.
R Pradeep Chandran rpc AT pobox DOT com
Mar 7 '07 #12

<su**************@yahoo.comwrote in message
news:11*********************@c51g2000cwc.googlegro ups.com...
Suppose there are five DISTINCT types TYPE1, TYPE2, TYPE3, TYPE4,
TYPE5, of data.

Consider the structures:

struct struct_one
{
TYPE1 data1;
TYPE2 data2;
TYPE3 data3;
TYPE4 data4;
TYPE5 data5;
} var_one;

struct struct_two
{
TYPE2 data1;
TYPE5 data2;
TYPE1 data3;
TYPE3 data4;
TYPE4 data5;
} var_two;

How do the sizes of var_one and var_two compare - will they be the
same or different ?
might be different, or might be same.
The sizes could be different, depending on what TYPE[1-5] are, and what
aliignment constraints are imposed by the platform.

Dan
Mar 7 '07 #13
Yevgen Muntyan wrote, On 07/03/07 14:15:
santosh wrote:
>Chris Dollin wrote:
>>santosh wrote:

jaysome wrote:
(quelle snippage!)

printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));
>
return 0;
}
Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?

I know that. I would've myself used %lu, if %zu was not possible,

So you'd cast to long instead of int.
No, read it again. Santosh would have to cast to unsigned long. Casting
size_t to an unsigned type makes far more sense than a signed type
(size_t being unsigned). unsigned long makes sense because it is the
largest unsigned type a C90 implementation is guaranteed to have.
>(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).

Microsoft is one of funny vendors who have long smaller than size_t.
It does make a certain amount of sense on 64 bit platforms. Although I
would have gone for increasing the size of long to 64 bits myself.
--
Flash Gordon
Mar 7 '07 #14
On Mar 7, 3:15 pm, Yevgen Muntyan <muntyan.removet...@tamu.eduwrote:
<snip>
(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).

Microsoft is one of funny vendors who have long smaller than size_t.
Um... not on my 32-bit (XP), they're both 4 bytes and size_t is a
typedef to unsigned int. On 64-bit it's a typedef to __int64, and
(IIRC) they decided to stick with 32-bit long.
--
WYCIWYG - what you C is what you get

Mar 7 '07 #15
Flash Gordon wrote:
Yevgen Muntyan wrote, On 07/03/07 14:15:
>santosh wrote:
>>Chris Dollin wrote:
santosh wrote:

jaysome wrote:
(quelle snippage!)

> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));
>>
> return 0;
>}
Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?

I know that. I would've myself used %lu, if %zu was not possible,

So you'd cast to long instead of int.

No, read it again. Santosh would have to cast to unsigned long. Casting
size_t to an unsigned type makes far more sense than a signed type
(size_t being unsigned). unsigned long makes sense because it is the
largest unsigned type a C90 implementation is guaranteed to have.
Wording sloppiness, "long" meant "unsigned long", I just wanted
to say he'd cast anyway (and for practical purposes int is as good
if you take structure offset).
>>(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).

Microsoft is one of funny vendors who have long smaller than size_t.

It does make a certain amount of sense on 64 bit platforms. Although I
would have gone for increasing the size of long to 64 bits myself.
Yes, it's win64. I also agree it's no good.

Yevgen
Mar 7 '07 #16
matevzb wrote:
On Mar 7, 3:15 pm, Yevgen Muntyan <muntyan.removet...@tamu.eduwrote:
<snip>
>>(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).
Microsoft is one of funny vendors who have long smaller than size_t.
Um... not on my 32-bit (XP), they're both 4 bytes and size_t is a
typedef to unsigned int. On 64-bit it's a typedef to __int64, and
(IIRC) they decided to stick with 32-bit long.
So long is 4 bytes, and size_t is 8 bytes, i.e. long is smaller than
size_t (where "smaller" means sizeof...).

Yevgen
Mar 7 '07 #17
Yevgen Muntyan wrote, On 07/03/07 17:51:
Flash Gordon wrote:
>Yevgen Muntyan wrote, On 07/03/07 14:15:
>>santosh wrote:
Chris Dollin wrote:
santosh wrote:
>
>jaysome wrote:
(quelle snippage!)
>
>> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));
>>>
>> return 0;
>>}
>Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?

I know that. I would've myself used %lu, if %zu was not possible,

So you'd cast to long instead of int.

No, read it again. Santosh would have to cast to unsigned long.
Casting size_t to an unsigned type makes far more sense than a signed
type (size_t being unsigned). unsigned long makes sense because it is
the largest unsigned type a C90 implementation is guaranteed to have.

Wording sloppiness, "long" meant "unsigned long", I just wanted
to say he'd cast anyway (and for practical purposes int is as good
if you take structure offset).
It makes a big difference to the correctness of the code.
>>>(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).

Microsoft is one of funny vendors who have long smaller than size_t.

It does make a certain amount of sense on 64 bit platforms. Although I
would have gone for increasing the size of long to 64 bits myself.

Yes, it's win64. I also agree it's no good.
Read what I said again. It does make a certain amount of sense, it is
just not what I would have done. MS wanted to avoid breaking other
peoples code more than they needed to (possibly their own as well) and
made the choice on that basis.
--
Flash Gordon
Mar 7 '07 #18
"Rahul" <ra*************@gmail.comwrites:
you can handle this byte alignment issue by using
__attribute__((__packed__)) with each structure element. then each one
of them will be allocated only minimum number of bytes needed.You can
save the memory requirements if u have huge structures.
[...]

Please don't top-post. See:
http://www.caliburn.nl/topposting.html
http://www.cpax.org.uk/prg/writings/topposting.php

Please don't use silly abbreviations like "u". This isn't a chat
room. Nobody expects perfect English, but please do take the effort
to spell out words.

"__attribute__((__packed__))" is a compiler-specific extension.

--
Keith Thompson (The_Other_Keith) ks***@mib.org <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <* <http://users.sdsc.edu/~kst>
"We must do something. This is something. Therefore, we must do this."
-- Antony Jay and Jonathan Lynn, "Yes Minister"
Mar 7 '07 #19
On Mar 7, 12:38 pm, Flash Gordon <s...@flash-gordon.me.ukwrote:
Yevgen Muntyan wrote, On 07/03/07 17:51:
Flash Gordon wrote:
Yevgen Muntyan wrote, On 07/03/07 14:15:
santosh wrote:
Chris Dollin wrote:
santosh wrote:
>>>>jaysome wrote:
(quelle snippage!)
>>>>> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));
>>>>> return 0;
>}
Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?
>>I know that. I would've myself used %lu, if %zu was not possible,
>So you'd cast to long instead of int.
No, read it again. Santosh would have to cast to unsigned long.
Casting size_t to an unsigned type makes far more sense than a signed
type (size_t being unsigned). unsigned long makes sense because it is
the largest unsigned type a C90 implementation is guaranteed to have.
Wording sloppiness, "long" meant "unsigned long", I just wanted
to say he'd cast anyway (and for practical purposes int is as good
if you take structure offset).

It makes a big difference to the correctness of the code.
It's easier to write %d and (int) in ten line programs whose whole
purpose is to print structure member offsets. Note that the
program *was* correct (there doesn't exist a computer where
2*sizeof(double)+2*sizeof(long)+padding INTMAX).
Besides, ironically, cast to unsigned long is almost as bad
as cast to int. If implementation was sufficiently weird (which
it isn't), both could break. unsigned long is as correct
as int: both can break (in weird theory); both ranges are smaller than
size_t range on some *existing* implementations; both work on all
existing implementations. Once something goes out the int range,
it will break on win64 if you use long ;)
>>(since jaysome appears to use Microsoft's Visual C++, which doesn't
implement C99).
>Microsoft is one of funny vendors who have long smaller than size_t.
It does make a certain amount of sense on 64 bit platforms. Although I
would have gone for increasing the size of long to 64 bits myself.
Yes, it's win64. I also agree it's no good.

Read what I said again. It does make a certain amount of sense, it is
just not what I would have done. MS wanted to avoid breaking other
peoples code more than they needed to (possibly their own as well) and
made the choice on that basis.
Sorry, I read "not what I would have done" as "it would be better in
my opinion not to make that". It is not quite "no good", so I could
not agree it's no good since you didn't say it's no good. I apologize
for making it look like I think you think MS did no good thing.

Yevgen

Mar 7 '07 #20
On 7 Mar 2007 13:38:32 -0800, ym******@gmail.com wrote:
>On Mar 7, 12:38 pm, Flash Gordon <s...@flash-gordon.me.ukwrote:
>Yevgen Muntyan wrote, On 07/03/07 17:51:
Flash Gordon wrote:
Yevgen Muntyan wrote, On 07/03/07 14:15:
santosh wrote:
Chris Dollin wrote:
santosh wrote:
>>>>>jaysome wrote:
(quelle snippage!)
>>>>>> printf("offsetof(d5) = %d\n", (int)offsetof(struct s2, d5));
>>>>>> return 0;
>>}
>Why do cast the type size_t value yielded by offsetof into int?
So they can print them using %d?
>>>I know that. I would've myself used %lu, if %zu was not possible,
>>So you'd cast to long instead of int.
>No, read it again. Santosh would have to cast to unsigned long.
Casting size_t to an unsigned type makes far more sense than a signed
type (size_t being unsigned). unsigned long makes sense because it is
the largest unsigned type a C90 implementation is guaranteed to have.
Wording sloppiness, "long" meant "unsigned long", I just wanted
to say he'd cast anyway (and for practical purposes int is as good
if you take structure offset).

It makes a big difference to the correctness of the code.

It's easier to write %d and (int) in ten line programs whose whole
purpose is to print structure member offsets. Note that the
program *was* correct (there doesn't exist a computer where
2*sizeof(double)+2*sizeof(long)+padding INTMAX).
Besides, ironically, cast to unsigned long is almost as bad
as cast to int. If implementation was sufficiently weird (which
it isn't), both could break. unsigned long is as correct
as int: both can break (in weird theory); both ranges are smaller than
size_t range on some *existing* implementations; both work on all
existing implementations. Once something goes out the int range,
it will break on win64 if you use long ;)
That is pretty much my thinking. Since it was basically a 10 line
program in which the structure members were basic types like char,
short, int, long and double, it's always safe to printf() the offsetof
these members using a conversion specifier of "%d" and casting the
arguments to int. Quick and dirty, yet effective.

--
jay
Mar 8 '07 #21

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

Similar topics

1
by: Doug | last post by:
I need to compare two "address" structures within a document, and perform some action if they are not equal. The XML document is a purchase order, with an address at both the header and line...
41
by: Odd-R. | last post by:
I have to lists, A and B, that may, or may not be equal. If they are not identical, I want the output to be three new lists, X,Y and Z where X has all the elements that are in A, but not in B, and...
11
by: Jeff | last post by:
Hi - I'm experiencing a strange problem when comparing 2 guids. In my trial, they're not equal. When I step through the (VB.NET) code, they are evaluated as equal, and when I enter the...
19
by: Dennis | last post by:
I have a public variable in a class of type color declared as follows: public mycolor as color = color.Empty I want to check to see if the user has specified a color like; if mycolor =...
12
by: barcaroller | last post by:
Is it legal to compare the contents of two multi-field variables (of the same struct) using "==" and "!="? struct { int a; int b; } x,y; ...
17
by: junky_fellow | last post by:
Guys, Is it a good way to compare two structures for equality by using "memcmp" ? If not, what could be the problems associated with this ? And what is the correct method of doing this ? ...
2
hodgeman
by: hodgeman | last post by:
My second thread on thescripts, so hoping to get the same feedback and help as last time... I've developed an online invoicing and payment system for all my accounts for my web design company....
3
by: Sean Dalton | last post by:
Hello, I have a two sets OLDLIST and REMOVE. I would like to remove every element in OLDLIST if it is also occuring in REMOVE and store the remaining elements from OLDLIST into NEWLIST. So...
1
by: ladesidude | last post by:
Hi, I have this program in C, and have commented each line as per my understanding. At the end, I have some questions which I havent been able to understand. Any help would be appreciated. ...
1
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
0
by: jfyes | last post by:
As a hardware engineer, after seeing that CEIWEI recently released a new tool for Modbus RTU Over TCP/UDP filtering and monitoring, I actively went to its official website to take a look. It turned...
0
by: ArrayDB | last post by:
The error message I've encountered is; ERROR:root:Error generating model response: exception: access violation writing 0x0000000000005140, which seems to be indicative of an access violation...
0
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
1
by: Shællîpôpï 09 | last post by:
If u are using a keypad phone, how do u turn on JavaScript, to access features like WhatsApp, Facebook, Instagram....
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

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.