473,513 Members | 2,658 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

No limits in arrays??

Is there no such a thing as an ArrayOutOfBounds exception in C?

I just did:

int main()
{
int a[4]; // a is an array that contains 4 integer.
a[5] = 999; // Thought this would give an error!
printf("a[5]: %d\n", a[5]);
return 1;
}

When I run this program

a[5]: 999

gets printed.

How is it possible to put something in a[5] when I have only specified that
a should contain 4 integers?
Nov 15 '05 #1
17 1783
No such thing in C. The results are undefined. For your compiler and
runtime environment, the program just happened to work.

Nov 15 '05 #2
Paminu <ja******@asd.com> writes:
Is there no such a thing as an ArrayOutOfBounds exception in C?

I just did:

int main()
{
int a[4]; // a is an array that contains 4 integer.
a[5] = 999; // Thought this would give an error!
printf("a[5]: %d\n", a[5]);
return 1;
}

When I run this program

a[5]: 999

gets printed.

How is it possible to put something in a[5] when I have only specified that
a should contain 4 integers?


This just came up recently.

Accessing an array element beyond the bounds of the array invokes
undefined behavior. This doesn't mean the compiler will detect the
error; it specifically means it's not required to do so. Undefined
behavior can do literally anything; the standard joke is that it can
legally make demons fly out of your nose.

In this case, you're probably just stepping on a memory location past
the end of the array. If the implementation doesn't happen to be
using ithat location for anything, it will most likely not create a
visible error (unfortunately). If it does use it for something, you
might clobber the function's return address or anything else.

The responsibility for avoiding undefined behavior is entirely yours.
Think of C as a power tool without safety features; it's effective
when used properly, but dangerous when used improperly.

Note that accessing a[4] would also invoke undefined behavior; the
valid elements are 0, 1, 2, and 3.

--
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.
Nov 15 '05 #3
An**********@gmail.com writes:
No such thing in C. The results are undefined. For your compiler and
runtime environment, the program just happened to work.


Here we go again.

If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers.

And *please* complain to Google about their broken interface. Search
for occurrences of the above paragraph in this newsgroup; that will
give you an idea of how big a problem it is.

--
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.
Nov 15 '05 #4
In article <ln************@nuthaus.mib.org>,
Keith Thompson <ks***@mib.org> wrote:
An**********@gmail.com writes:
No such thing in C. The results are undefined. For your compiler and
runtime environment, the program just happened to work.
Here we go again.

If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers.

And *please* complain to Google about their broken interface. Search
for occurrences of the above paragraph in this newsgroup; that will
give you an idea of how big a problem it is.


You are wasting your breath. They'll never get it.
And I'll tell you why.

Imagine that there's a mouse - and the mouse is the Usenet. You and I can
see that it is a mouse and we behave accordingly. But now there is a class
of users (we'll call them "googlers") that are wearing these funny weird
glasses that make them see not a mouse, but an elephant. Seeing an
elephant (i.e., the Usenet as a web page), they also behave accordingly.
And no amount of verbiage from us is going to convince them that it's not
an elephant - that it is only a mouse.

To make this more clear, to a googler, it doesn't make any sense to "quote"
(whatever the heck that is...), in fact, to do would be absurd, when all
the rest of the articles in the thread are right there in front of their
faces (just as clear as the trunk on that mouse, er, elephant). And no
amount of verbiage from us is going to convince them not to believe what
they see. The point is you can *never* convince someone that what they see
isn't reality. The only way you can address the problem is to help them
fix their eyesight (or help them remove their funny glasses).
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.


This is a cute line. Where does it come from?
Does it refer to anything beyond the obvious (The obvious being, of course,
the Iraq war) ?

Nov 15 '05 #5
Hi

Paminu wrote:
Is there no such a thing as an ArrayOutOfBounds exception in C?


No. And most importantly, there are no exceptions at all in C.
But you're free to write array handling routines that somehow check for
out-of-bounds conditions and report the error... there are probably
libraries around. Something along the lines of

struct array; /* should have members size and data */
array *array_create(size_t size); /* allocate and initialize a new array */
void array_delete(array *me); /* free the array */
int array_at(array *me, size_t pos); /* return value at pos */
void array_set_at(array *me, size_t pos, int value); /* set value at pos */
....

As long as you don't need/use multi-threading, reporting errors through some
errno variable might be enough...

Maybe (although you're asking in a C newsgroup) you would be happier with
C++, as it offers what you seem to be looking for (std::vector<T>::at())?

Markus

Nov 15 '05 #6
Paminu wrote:
Is there no such a thing as an ArrayOutOfBounds exception in C?
No. Some implementations will trap some out of bounds accesses under
some circumstances, but it is not guaranteed and I'm not aware of any
that will catch all out of bounds accesses.
I just did:
#include <stdio.h>
int main()
{
int a[4]; // a is an array that contains 4 integer.
a[5] = 999; // Thought this would give an error!
printf("a[5]: %d\n", a[5]);
printf requires a prototype because it is a varidac function, otherwise
that is another point of undefined behaviour. The normal way to provide
the prototype is to include stdio.h

In general, ALWAYS include the headers that define prototypes for the
functions you are using, they are not provided just for the hell of it.
return 1;
}

When I run this program

a[5]: 999

gets printed.

How is it possible to put something in a[5] when I have only specified that
a should contain 4 integers?


On that run there happened to be some memory at the following location.
Don't rely on this, since if you do you will find that you have
overwritten something critical and in the middle of an important demo
that your career depends on (on the result of your course) the program
will do something really annoying like displaying an insulting letter
someone has written about the person you are demonstrating the program to.
--
Flash Gordon
Living in interesting times.
Although my email address says spam, it is real and I read it.
Nov 15 '05 #7
ga*****@yin.interaccess.com (Kenny McCormack) writes:
In article <ln************@nuthaus.mib.org>,
Keith Thompson <ks***@mib.org> wrote:
An**********@gmail.com writes:
No such thing in C. The results are undefined. For your compiler and
runtime environment, the program just happened to work.


Here we go again.

If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers.

And *please* complain to Google about their broken interface. Search
for occurrences of the above paragraph in this newsgroup; that will
give you an idea of how big a problem it is.


You are wasting your breath. They'll never get it.
And I'll tell you why.

[snip]

You've already said this, and I've already explained why I disagree
(speaking of wasting breath).

[...]
We must do something. This is something. Therefore, we must do this.


This is a cute line. Where does it come from?
Does it refer to anything beyond the obvious (The obvious being, of course,
the Iraq war) ?


I *think* it's originally from "Yes, Minister", a British TV show.
I had one particular thing in mind when I started using it as my
sig quote but it doesn't necessarily refer to anything specific.
And I'm *not* going to discuss politics here.

--
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.
Nov 15 '05 #8
In article <ln************@nuthaus.mib.org>,
Keith Thompson <ks***@mib.org> wrote:
An**********@gmail.com writes:
No such thing in C. The results are undefined. For your compiler and
runtime environment, the program just happened to work.


Here we go again.

If you want to post a followup via groups.google.com, don't use
the broken "Reply" link at the bottom of the article. Click on
"show options" at the top of the article, then click on the
"Reply" at the bottom of the article headers.

And *please* complain to Google about their broken interface. Search
for occurrences of the above paragraph in this newsgroup; that will
give you an idea of how big a problem it is.


I briefly tried out some killfile settings to reduce my
personal noise level in this group. In trn 3.x syntax:

/googlegroups.com/HMessage-ID:j

means to kill any message whose message ID indicates that
it was posted by googlegroups.com. (Other newsreaders should
have similar capabilities.) Anyway, this cuts out quite a
bit of the homework requests, C++ questions, top-postings
and the like.

Having done that, it is immediately clear that there is
another problem: the replies[1] to each google groups post
outnumber the original by about 3:1. Though they are
well-meant (and often well-phrased) exhortations to post
correctly[2], read the FAQ, post in the correct newsgroup, do
your own homework, etc. Still, it becomes tiresome to see
the same concepts repeated. For that,

/googlegroups.com/HReferences:j

brings the noise level down *significantly*. What this does
is to scan for articles which are followups to the google
groups posts, identifying them by their reference to the
original post's message-id, and kills them. This is a bit
non-deterministic: the depth of references that a person's
newsreader preserves upon followup is not consistent. You
aren't just killing immediate followups, but possibly two,
three, or more levels down the article tree.

If the crossposts get to you more than the google groups
posts, you can try out one of these:

/Newsgroups:.*,/h:j
/Newsgroups:.*,.*,/h:j

the first kills any cross-post. The second kills only
crossposts that cross three or more newsgroups. (The
three-way cross-post killer is about the only killfile
entry I have stuck with over the years and across
all newsgroups.)

Of course, the above kill file syntax is ancient, but it
demonstrates that it is possible to quiet the google groups
noise on the receiving end. With some minor effort, it
should be possible to translate the above killfile entries
to something appropriate for your newsreader.

Of course, I'm not sure if this is the optimal approach to
take in this matter. I have two principal concerns:

* Clearly it is unfair to tar all google groups users with
the same brush, but it is also unfair that each of us
should be forced to take on the burden of tarring with a
finer brush.

* Engaging google to fix their broken interface is probably
the kindest approach, but so far no-one has gotten through
to them. Possibly, they have made their decision based on
how other newsgroups behave and are not interested in
special-casing their interface for our benefit.

Sorry, I know this is off-topic meta-discussion, but
hopefully this will make the comp.lang.c experience more
pleasant for some number of people who are as sick of
the google groups noise as I am.

_______
[1] http://www.igopogo.com/pogoplaque.jpg
[2] http://groups.google.com/support/bin...y?answer=14213
Nov 15 '05 #9
Flash Gordon (sp**@flash-gordon.me.uk) wrote:
: Paminu wrote:
: > Is there no such a thing as an ArrayOutOfBounds exception in C?

: No. Some implementations will trap some out of bounds accesses under
: some circumstances, but it is not guaranteed and I'm not aware of any
: that will catch all out of bounds accesses.

You wouldn't want a compiler to catch all out of bounds errors. A common
idiom for structures is

typedef struct _something
{
struct _something * next;
char data[1];
} something ;

When used, an instance will be malloc'd with a size large enough to
contain your data and then the data member can be accessed as

a_something.data[i]

The array index may commonly appear to be "out of bounds" according to the
definition, but doesn't represent a problem.

--

This programmer available for rent.
Nov 15 '05 #10
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
Flash Gordon (sp**@flash-gordon.me.uk) wrote:
: Paminu wrote:
: > Is there no such a thing as an ArrayOutOfBounds exception in C?

: No. Some implementations will trap some out of bounds accesses under
: some circumstances, but it is not guaranteed and I'm not aware of any
: that will catch all out of bounds accesses.

You wouldn't want a compiler to catch all out of bounds errors. A common
idiom for structures is

typedef struct _something
{
struct _something * next;
char data[1];
} something ;
Leading underscores in identifiers. Ick. (I'm too lazy to check
whether this particular usage is a problem.)
When used, an instance will be malloc'd with a size large enough to
contain your data and then the data member can be accessed as

a_something.data[i]

The array index may commonly appear to be "out of bounds" according to the
definition, but doesn't represent a problem.


It's a common idiom, known as the "struct hack", but strictly speaking
it invokes undefined behavior. A checking implementation could
legally forbid references to any element of a_something.data other
than a_something.data[0].

C99 added a "safe" version of the "struct hack", known as a "flexible
array member". For example:

struct something {
struct something *next;
char data[];
};

--
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.
Nov 15 '05 #11
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
Flash Gordon (sp**@flash-gordon.me.uk) wrote:
: Paminu wrote:
: > Is there no such a thing as an ArrayOutOfBounds exception in C?

: No. Some implementations will trap some out of bounds accesses under
: some circumstances, but it is not guaranteed and I'm not aware of any
: that will catch all out of bounds accesses.

You wouldn't want a compiler to catch all out of bounds errors. A common
idiom for structures is

typedef struct _something
{
struct _something * next;
char data[1];
} something ;


There's a FAQ that talks about this.

2.6: I came across some code that declared a structure like this:

struct name {
int namelen;
char namestr[1];
};

and then did some tricky allocation to make the namestr array
act like it had several elements. Is this legal or portable?

A: This technique is popular, although Dennis Ritchie has called it
"unwarranted chumminess with the C implementation." An official
interpretation has deemed that it is not strictly conforming
with the C Standard, although it does seem to work under all
known implementations. (Compilers which check array bounds
carefully might issue warnings.)

Another possibility is to declare the variable-size element very
large, rather than very small; in the case of the above example:

...
char namestr[MAXSIZE];

where MAXSIZE is larger than any name which will be stored.
However, it looks like this technique is disallowed by a strict
interpretation of the Standard as well. Furthermore, either of
these "chummy" structures must be used with care, since the
programmer knows more about their size than the compiler does.
(In particular, they can generally only be manipulated via
pointers.)

C9X will introduce the concept of a "flexible array member",
which will allow the size of an array to be omitted if it is
the last member in a structure, thus providing a well-defined
solution.

References: Rationale Sec. 3.5.4.2; C9X Sec. 6.5.2.1.

--
"The expression isn't unclear *at all* and only an expert could actually
have doubts about it"
--Dan Pop
Nov 15 '05 #12
Keith Thompson (ks***@mib.org) wrote:
: yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
: > Flash Gordon (sp**@flash-gordon.me.uk) wrote:
: > : Paminu wrote:
: > : > Is there no such a thing as an ArrayOutOfBounds exception in C?
: >
: > : No. Some implementations will trap some out of bounds accesses under
: > : some circumstances, but it is not guaranteed and I'm not aware of any
: > : that will catch all out of bounds accesses.
: >
: > You wouldn't want a compiler to catch all out of bounds errors. A common
: > idiom for structures is
: >
: > typedef struct _something
: > {
: > struct _something * next;
: > char data[1];
: > } something ;

: Leading underscores in identifiers. Ick. (I'm too lazy to check
: whether this particular usage is a problem.)

"problem"? perhaps that's something new. You (used to) need a name for
the struct but the typedef name is the name you will normally use. I
think I copied the style (underscore on the struct name) from Atari or
Macintosh code.
: > When used, an instance will be malloc'd with a size large enough to
: > contain your data and then the data member can be accessed as
: >
: > a_something.data[i]
: >
: > The array index may commonly appear to be "out of bounds" according to the
: > definition, but doesn't represent a problem.

: It's a common idiom, known as the "struct hack", but strictly speaking
: it invokes undefined behavior. A checking implementation could
: legally forbid references to any element of a_something.data other
: than a_something.data[0].

: C99 added a "safe" version of the "struct hack", known as a "flexible
: array member". For example:

: struct something {
: struct something *next;
: char data[];
: };

Shows how much I use C these days. Thats good to know. I guess I should
bone up on the latest standard (perhaps after learning python and JSP 2).
--

This programmer available for rent.
Nov 15 '05 #13
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
Keith Thompson (ks***@mib.org) wrote:
: Leading underscores in identifiers. Ick. (I'm too lazy to check
: whether this particular usage is a problem.)

"problem"? perhaps that's something new. You (used to) need a name for
the struct but the typedef name is the name you will normally use. I
think I copied the style (underscore on the struct name) from Atari or
Macintosh code.


Keith is trying to point out that most identifiers that begin
with an underscore are reserved, so that user code should not use
them. There are some exceptions, but it's really not worth it to
remember them; it's simpler to just never start an identifier
with an underscore.

You can always use a trailing underscore instead.
--
int main(void){char p[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv wxyz.\
\n",*q="kl BIcNBFr.NKEzjwCIxNJC";int i=sizeof p/2;char *strchr();int putchar(\
);while(*q){i+=strchr(p,*q++)-p;if(i>=(int)sizeof p)i-=sizeof p-1;putchar(p[i]\
);}return 0;}
Nov 15 '05 #14
Keith Thompson <ks***@mib.org> wrote:
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:

typedef struct _something
{
struct _something * next;
char data[1];
} something ;


Leading underscores in identifiers. Ick. (I'm too lazy to check
whether this particular usage is a problem.)


I think it's always okay for members.

# -- All identifiers that begin with an underscore and
# either an uppercase letter or another underscore are
# always reserved for any use.
#
# -- All identifiers that begin with an underscore are
# always reserved for use as identifiers with file scope
# in both the ordinary and tag name spaces.

--
Stan Tobias
mailx `echo si***@FamOuS.BedBuG.pAlS.INVALID | sed s/[[:upper:]]//g`
Nov 15 '05 #15
Keith Thompson wrote:
Paminu <ja******@asd.com> writes:
Is there no such a thing as an ArrayOutOfBounds exception in C?

I just did:

int main()
{
int a[4]; // a is an array that contains 4 integer.
a[5] = 999; // Thought this would give an error!
printf("a[5]: %d\n", a[5]);
return 1;
}

When I run this program

a[5]: 999

gets printed.

How is it possible to put something in a[5] when I have only specified
that a should contain 4 integers?


This just came up recently.

Accessing an array element beyond the bounds of the array invokes
undefined behavior. This doesn't mean the compiler will detect the
error; it specifically means it's not required to do so. Undefined
behavior can do literally anything; the standard joke is that it can
legally make demons fly out of your nose.

In this case, you're probably just stepping on a memory location past
the end of the array. If the implementation doesn't happen to be
using ithat location for anything, it will most likely not create a
visible error (unfortunately). If it does use it for something, you
might clobber the function's return address or anything else.

Ok so I guess my application does not use this memory location since I
always get 999 printed (unless some mysterious coincidence is taken place).
Nov 15 '05 #16
S.Tobias wrote:
Keith Thompson <ks***@mib.org> wrote:
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
typedef struct _something ^^^^^^^^^^ {
struct _something * next;
char data[1];
} something ;


Leading underscores in identifiers. Ick. (I'm too lazy to check
whether this particular usage is a problem.)


I think it's always okay for members.


Maybe, but this was not a member, it was a tag.
# -- All identifiers that begin with an underscore and
# either an uppercase letter or another underscore are
# always reserved for any use.
#
# -- All identifiers that begin with an underscore are
# always reserved for use as identifiers with file scope
# in both the ordinary and tag name spaces.


So if it was at file scope, which is likely since it looks like the
typedef for a linked list, it does fall foul of this.

As Keith said, it is simplest to just avoid all leading underscores and,
IMHO, it was a mistake for the standard to make the rules this complex.
--
Flash Gordon
Living in interesting times.
Although my email address says spam, it is real and I read it.
Nov 15 '05 #17
yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes:
Keith Thompson (ks***@mib.org) wrote:
: yf***@vtn1.victoria.tc.ca (Malcolm Dew-Jones) writes: [...] : > You wouldn't want a compiler to catch all out of bounds errors. A common
: > idiom for structures is
: >
: > typedef struct _something
: > {
: > struct _something * next;
: > char data[1];
: > } something ;

: Leading underscores in identifiers. Ick. (I'm too lazy to check
: whether this particular usage is a problem.)

"problem"? perhaps that's something new. You (used to) need a name for
the struct but the typedef name is the name you will normally use. I
think I copied the style (underscore on the struct name) from Atari or
Macintosh code.


Others have explained the problem with leading underscores.

In addition to that, there's really no need for the typedef. The
struct tag is all you need. For example (using C99 syntax for the
flexible array member):

struct something {
struct something *next;
char data[];
};

struct something s;
struct something *p;

The typedef can save you a few keystrokes (which is *not* necessarily)
a good thing). It also hides the fact that the type is a struct,
something that you don't usually want to hide (though there are
exceptions).

This is a matter of style, and not everyone agrees.

--
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.
Nov 15 '05 #18

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

Similar topics

2
3803
by: lawrence | last post by:
I'm playing around with the code that runs my site. Suddenly I started getting this error: <b>Fatal error</b>: Allowed memory size of 8388608 bytes exhausted (tried to allocate 311020 bytes) in...
9
1329
by: dasacc | last post by:
Hi, I've only been using python for two days now but I'm working on it. I have the following text: <select><option></option><option></option></select><select><option></option></select> My...
25
2678
by: Maurice LING | last post by:
Hi, I think I've hit a system limit in python when I try to construct a list of 200,000 elements. My error is malloc: vm_allocate (size = 2400256) failed...... Just wondering is this...
4
2493
by: platho | last post by:
Hello, I bounced into the max 25 columns index limits on DB2 v7.2 on NT. Is this still so in other operating systems or in v8 ? Are there plans to change this in the future ? Any workarounds...
16
6426
by: Mark Bruno | last post by:
Hey, I'm learning about the limits header, and I don't understand one snippit of code. If I code: #include <limits.h> #include <stdio.h> int main() { printf("Smallest signed long long:...
37
48621
by: Carol Depore | last post by:
How do I determine the maximum array size? For example, int a works, but a does not (run time error). Thank you.
8
2366
by: maaceroo | last post by:
Hello, I am not an expert in programmig, and I'm experimenting some problems I hope you could help me to solve. By now, I would like to know if in C++ there is a maximum number of rows (and...
88
3664
by: santosh | last post by:
Hello all, In K&R2 one exercise asks the reader to compute and print the limits for the basic integer types. This is trivial for unsigned types. But is it possible for signed types without...
13
1638
by: Josip | last post by:
I'm trying to limit a value stored by object (either int or float): class Limited(object): def __init__(self, value, min, max): self.min, self.max = min, max self.n = value def...
44
2186
by: vippstar | last post by:
n1256.pdf (C99 TC3), 5.2.4.1 Translation limits p1 says: Does that mean that *any* program using an array of two or more elements other than char is allowed to be rejected by an implementation?...
0
7157
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
7379
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,...
1
7098
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
5682
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
1
5084
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 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 a new...
0
3232
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
1591
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
798
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
0
455
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence...

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.