473,466 Members | 1,464 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

pointer subtraction and sizeof

Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.

I was thinking of one more scenario where this may fail, but not sure
whether I am right or wrong. Just wanted to take your opinion.
Consider a 32 bit machine on which the "obj" is lying at the largest
address ie. 0xffffffff on this machine.
Shouldn't the addition of 1 to the obj pointer fail on this machine and
we are likely to get a wrong value of the size ? Aren't we assuming
that &obj + 1 will always be a valid address by doing that ?

With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1 ?

many thanks for any help/comments ...

Jan 12 '07 #1
20 2663
ju**********@yahoo.co.in wrote:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.

I was thinking of one more scenario where this may fail, but not sure
whether I am right or wrong. Just wanted to take your opinion.
Consider a 32 bit machine on which the "obj" is lying at the largest
address ie. 0xffffffff on this machine.
Shouldn't the addition of 1 to the obj pointer fail on this machine and
we are likely to get a wrong value of the size ? Aren't we assuming
that &obj + 1 will always be a valid address by doing that ?
Yes. This is a safe assumption, because it is guaranteed by the C
standard.
With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1 ?
Whether this is by design or by accident is open to debate, but the
address one past the end is allowed to double as a null pointer, so if
there is not a single other object (including argc, argv, any string
literals, etc.), it's possible in theory to have an object of size
0xFFFFFFFF on a system with 32-bit pointers.

Jan 12 '07 #2
ju**********@yahoo.co.in said:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
They were wrong. sizeof cannot be calculated because sizeof is not a value.
It is an operator. Furthermore, it works not just on objects but also on
expressions and on parenthesised types. That is why it's an operator in the
first place - you can't implement it as a C function, because the syntax
simply doesn't exist.

<snip>
With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1 ?
No, it doesn't mean that. On a 32-bit machine, or indeed on any machine, the
largest object you can be *guaranteed* to obtain is 32767 bytes (or, if
you've managed to find a C99 compiler, 65535 bytes).

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 12 '07 #3

Harald van Dijk wrote:
ju**********@yahoo.co.in wrote:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.

I was thinking of one more scenario where this may fail, but not sure
whether I am right or wrong. Just wanted to take your opinion.
Consider a 32 bit machine on which the "obj" is lying at the largest
address ie. 0xffffffff on this machine.
Shouldn't the addition of 1 to the obj pointer fail on this machine and
we are likely to get a wrong value of the size ? Aren't we assuming
that &obj + 1 will always be a valid address by doing that ?

Yes. This is a safe assumption, because it is guaranteed by the C
standard.
Thanks Herald for the answer, but I believe this is true only for an
array but not for any other object, that is why I asked this question.
With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1 ?

Whether this is by design or by accident is open to debate, but the
address one past the end is allowed to double as a null pointer, so if
there is not a single other object (including argc, argv, any string
literals, etc.), it's possible in theory to have an object of size
0xFFFFFFFF on a system with 32-bit pointers.
Again, I am talking about an array.

Jan 12 '07 #4

Richard Heathfield wrote:
ju**********@yahoo.co.in said:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

They were wrong. sizeof cannot be calculated because sizeof is not a value.
It is an operator. Furthermore, it works not just on objects but also on
expressions and on parenthesised types. That is why it's an operator in the
first place - you can't implement it as a C function, because the syntax
simply doesn't exist.
I agree with your previous answers (in my previous post) that sizeof
cannot be implemented as a function. I just wanted to discuss where the
above subtraction would fail.

Jan 12 '07 #5
ju**********@yahoo.co.in said:
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
<snip>
>I just wanted to discuss where the above subtraction would fail.
AFAICT it's not allowed to fail.
--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 12 '07 #6

Richard Heathfield wrote:
ju**********@yahoo.co.in said:
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

<snip>
I just wanted to discuss where the above subtraction would fail.

AFAICT it's not allowed to fail.

But, how can we guarantee that &obj + 1 will always be valid. As in my
previous exmaple, if obj is lying at the largest address . Shouldn't
this subtraction fail in this case ?

Jan 12 '07 #7
ju**********@yahoo.co.in said:
>
Richard Heathfield wrote:
>ju**********@yahoo.co.in said:
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

<snip>
>I just wanted to discuss where the above subtraction would fail.

AFAICT it's not allowed to fail.

But, how can we guarantee that &obj + 1 will always be valid. As in my
previous exmaple, if obj is lying at the largest address . Shouldn't
this subtraction fail in this case ?
The implementation is required to allow you to point one past the end of any
array without breaking pointer subtraction, and an object can be thought of
as an array of one object, IIRC (but you might be sufficiently motivated to
check with the csc folks on that).

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 12 '07 #8
ju**********@yahoo.co.in wrote:
Harald van Dijk wrote:
ju**********@yahoo.co.in wrote:
Hi,
>
In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.
>
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
>
I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.
>
I was thinking of one more scenario where this may fail, but not sure
whether I am right or wrong. Just wanted to take your opinion.
Consider a 32 bit machine on which the "obj" is lying at the largest
address ie. 0xffffffff on this machine.
Shouldn't the addition of 1 to the obj pointer fail on this machine and
we are likely to get a wrong value of the size ? Aren't we assuming
that &obj + 1 will always be a valid address by doing that ?
Yes. This is a safe assumption, because it is guaranteed by the C
standard.
Thanks Herald for the answer, but I believe this is true only for an
array but not for any other object, that is why I asked this question.
As Richard Heathfield also mentioned, any object can be thought of as
an array of one element. The section in the standard is 6.5.6p7, which
reads:
"For the purposes of these operators [plus and minus], a pointer to an
object that is not an element of an array behaves the same as a pointer
to the first element of an array of length one with the type of the
object as its element type."
With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1?
Whether this is by design or by accident is open to debate, but the
address one past the end is allowed to double as a null pointer, so if
there is not a single other object (including argc, argv, any string
literals, etc.), it's possible in theory to have an object of size
0xFFFFFFFF on a system with 32-bit pointers.

Again, I am talking about an array.
In this case, that is irrelevant. Every byte of every object can be
addressed using a pointer-to-char, so there must be some character
pointer value that means "the first byte of argc", and the same for all
bytes and all other objects. This cannot be the same value as a pointer
to any element of your large array.

Jan 12 '07 #9

ju**********@yahoo.co.in wrote:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
I had said that for the other method which tries to find the size of a
type, not size of an object. I should have made it clear before, sorry.

Jan 12 '07 #10

Richard Heathfield wrote:
ju**********@yahoo.co.in said:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

They were wrong. sizeof cannot be calculated because sizeof is not a value.
It is an operator.
The OP had specifically asked to implement it as a function, not to
implement it as an operator, which of course is not possible.

Jan 12 '07 #11
Sharath said:
>
Richard Heathfield wrote:
>ju**********@yahoo.co.in said:
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

They were wrong. sizeof cannot be calculated because sizeof is not a
value. It is an operator.

The OP had specifically asked to implement it as a function, not to
implement it as an operator, which of course is not possible.
Well, it *is* implemented as an operator, by compiler writers. :-)

It cannot be implemented in its entirety as a function, however.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 12 '07 #12

<ju**********@yahoo.co.inwrote in message
news:11**********************@v45g2000cwv.googlegr oups.com...
Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
this substraction never fails since there are two temporary variables (
maybe just two registers in assembly after compile ) holding
values of "address of obj + 1" and "address of obj". they are just same as
other variables. maybe &obj+1 overflows on the limited
word size boxes but it can pass compile and can run but maybe the result is
not correct. if you try to dereference an invalid address you will
get segmentation fault on mordern OSes.

You can not caculate size of obj in this way. you will expect size_obj=1 on
most implementations.
size_obj = (ptr_to_obj+1) - ptr_to_obj. It's done by the compiler writers
too. You can NOT use arithmatic on void *.
sizeof is just an operator which inform the compiler to caculate the value
in the compiling period.
I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.

I was thinking of one more scenario where this may fail, but not sure
whether I am right or wrong. Just wanted to take your opinion.
Consider a 32 bit machine on which the "obj" is lying at the largest
address ie. 0xffffffff on this machine.
Shouldn't the addition of 1 to the obj pointer fail on this machine and
we are likely to get a wrong value of the size ? Aren't we assuming
that &obj + 1 will always be a valid address by doing that ?

With this one more question comes to my mind.
When we talk about arrays, we say that address of element, one past the
last element will always be a valid one. Does that mean, that on a 32
bit machine, the largest array of char would be of size 0xffffffff -1 ?

many thanks for any help/comments ...

Jan 12 '07 #13
Yingjian Zhan wrote:
<ju**********@yahoo.co.inwrote in message
news:11**********************@v45g2000cwv.googlegr oups.com...
>Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
this substraction never fails since there are two temporary variables (
maybe just two registers in assembly after compile ) holding
values of "address of obj + 1" and "address of obj". they are just same as
other variables. maybe &obj+1 overflows on the limited
&obj+1 is *always* legal for any valid obj (i.e. it is always safe to
add one to any pointer to a valid object)
word size boxes but it can pass compile and can run but maybe the result is
not correct. if you try to dereference an invalid address you will
get segmentation fault on mordern OSes.

You can not caculate size of obj in this way.
Yes, you can.
you will expect size_obj=1 on most implementations. size_obj = (ptr_to_obj+1) - ptr_to_obj.
That is why there is a cast to (char*) before the subtraction.
--
Clark S. Cox III
cl*******@gmail.com
Jan 12 '07 #14
yeah. u r right.
I misunderstood the post.
"Clark S. Cox III" <cl*******@gmail.comwrote in message
news:12*************@corp.supernews.com...
Yingjian Zhan wrote:
><ju**********@yahoo.co.inwrote in message
news:11**********************@v45g2000cwv.googleg roups.com...
>>Hi,

In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may calculated
as follows with a warning that it is not guaranteed to work on all
implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
this substraction never fails since there are two temporary variables (
maybe just two registers in assembly after compile ) holding
values of "address of obj + 1" and "address of obj". they are just same
as
other variables. maybe &obj+1 overflows on the limited

&obj+1 is *always* legal for any valid obj (i.e. it is always safe to
add one to any pointer to a valid object)
>word size boxes but it can pass compile and can run but maybe the result
is
not correct. if you try to dereference an invalid address you will
get segmentation fault on mordern OSes.

You can not caculate size of obj in this way.

Yes, you can.
>you will expect size_obj=1 on most implementations. size_obj =
(ptr_to_obj+1) - ptr_to_obj.

That is why there is a cast to (char*) before the subtraction.
--
Clark S. Cox III
cl*******@gmail.com

Jan 13 '07 #15
Yingjian Zhan wrote:
>
yeah. u r right. I misunderstood the post.
Please do not top-post, and please do not use geek-speek. The
words are "you" and "are", or "you're". See the following links.

--
Some informative links:
<http://members.fortunecity.com/nnqweb/ (newusers)
<http://www.catb.org/~esr/faqs/smart-questions.html>
<http://www.caliburn.nl/topposting.html>
<http://www.netmeister.org/news/learn2quote.html>
<http://cfaj.freeshell.org/google/ (taming google)
Jan 13 '07 #16

Richard Heathfield wrote:
ju**********@yahoo.co.in said:

Richard Heathfield wrote:
ju**********@yahoo.co.in said:

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

<snip>

I just wanted to discuss where the above subtraction would fail.

AFAICT it's not allowed to fail.

But, how can we guarantee that &obj + 1 will always be valid. As in my
previous exmaple, if obj is lying at the largest address . Shouldn't
this subtraction fail in this case ?

The implementation is required to allow you to point one past the end of any
array without breaking pointer subtraction, and an object can be thought of
as an array of one object, IIRC (but you might be sufficiently motivated to
check with the csc folks on that).
I am still not able to understand that how an implementation would
allow such a subtraction if the object is lying at the highest possible
address. Can you please explain this by giving some example ?

Jan 16 '07 #17
ju**********@yahoo.co.in wrote:
Richard Heathfield wrote:
ju**********@yahoo.co.in said:
Richard Heathfield wrote:
>ju**********@yahoo.co.in said:
>>
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
>>
><snip>
>>
>I just wanted to discuss where the above subtraction would fail.
>>
>AFAICT it's not allowed to fail.
>>
>>
But, how can we guarantee that &obj + 1 will always be valid. As in my
previous exmaple, if obj is lying at the largest address . Shouldn't
this subtraction fail in this case ?
The implementation is required to allow you to point one past the end of any
array without breaking pointer subtraction, and an object can be thought of
as an array of one object, IIRC (but you might be sufficiently motivated to
check with the csc folks on that).
I am still not able to understand that how an implementation would
allow such a subtraction if the object is lying at the highest possible
address.
If it can't, then the implementation must not allow an object lying at
the highest possible address. Let's assume it can, though...
Can you please explain this by giving some example ?
One possibility is that pointer subtraction works the same way as
unsigned arithmetic. (Note: I have not carefully checked the example
for correctness. If there are mistakes, I hope the intent is clear.)

#include <stdio.h>
#include <inttypes.h>
char object; /* happens to be at the highest possible address */
int main(void) {
char *p1 = &object, *p2 = &object + 1;
printf("%p\n", (void *) p1); /* pointer to highest possible address
*/
printf("%p\n", (void *) p2); /* pointer to one past highest
possible address */
printf("%td\n", p2 - p1); /* one */

uintptr_t a1 = (uintptr_t) p1, a2 = a1 + 1;
printf(PRIXPTR "\n", a1); /* highest possible address */
printf(PRIXPTR "\n", a2); /* highest possible address plus one */
printf(PRIXPTR "\n", a2 - a1); /* one */
}

gives this output:

FFFFFFFF
00000000
1
FFFFFFFF
0
1

Jan 16 '07 #18
ju**********@yahoo.co.in said:

<snip>
I am still not able to understand that how an implementation would
allow such a subtraction if the object is lying at the highest possible
address. Can you please explain this by giving some example ?
If placing an object at the highest possible address will cause this to
fail, then the implementation is not allowed to place an object at the
highest possible address.

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at the above domain, - www.
Jan 16 '07 #19

Harald van Dijk wrote:
ju**********@yahoo.co.in wrote:
Richard Heathfield wrote:
ju**********@yahoo.co.in said:
Richard Heathfield wrote:
ju**********@yahoo.co.in said:
>
size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);
>
<snip>
>
I just wanted to discuss where the above subtraction would fail.
>
AFAICT it's not allowed to fail.
>
>
But, how can we guarantee that &obj + 1 will always be valid. As inmy
previous exmaple, if obj is lying at the largest address . Shouldn't
this subtraction fail in this case ?
>
The implementation is required to allow you to point one past the endof any
array without breaking pointer subtraction, and an object can be thought of
as an array of one object, IIRC (but you might be sufficiently motivated to
check with the csc folks on that).
>
I am still not able to understand that how an implementation would
allow such a subtraction if the object is lying at the highest possible
address.

If it can't, then the implementation must not allow an object lying at
the highest possible address. Let's assume it can, though...
Can you please explain this by giving some example ?

One possibility is that pointer subtraction works the same way as
unsigned arithmetic. (Note: I have not carefully checked the example
for correctness. If there are mistakes, I hope the intent is clear.)

#include <stdio.h>
#include <inttypes.h>
char object; /* happens to be at the highest possible address */
int main(void) {
char *p1 = &object, *p2 = &object + 1;
printf("%p\n", (void *) p1); /* pointer to highest possible address
*/
printf("%p\n", (void *) p2); /* pointer to one past highest
possible address */
printf("%td\n", p2 - p1); /* one */

uintptr_t a1 = (uintptr_t) p1, a2 = a1 + 1;
printf(PRIXPTR "\n", a1); /* highest possible address */
printf(PRIXPTR "\n", a2); /* highest possible address plus one */
printf(PRIXPTR "\n", a2 - a1); /* one */
}

gives this output:

FFFFFFFF
00000000
1
FFFFFFFF
0
1
Thanks Herald and Richard for your answers. Both of them make sense and
are satisfying. Thanks a ton again.

Jan 16 '07 #20
Yingjian Zhan wrote:
<ju**********@yahoo.co.inwrote:
In my previous post I asked if sizeof may be implemented as a
function. Somebody pointed a link that says that sizeof may
calculated as follows with a warning that it is not guaranteed to
work on all implementation.

size_t size_obj = (char*)(&obj + 1) - (char*)(&obj);

this substraction never fails
Yes, it can.

<snip>
I wanted to find out on which implementation this would fail. One of
the answer that I got was that ptrdiff_t may not be of same size as
size_t, due to which this may fail.
The sizes of ptrdiff_t and size_t are incidental.

What I actually said was "...if the object were bigger than PTRDIFF_MAX
bytes. [Note that PTRDIFF_MAX is typically smaller than SIZE_MAX.]"

--
Peter

Jan 16 '07 #21

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

Similar topics

34
by: Andy | last post by:
Hi, Are 1 through 4 defined behaviors in C? unsigned short i; unsigned long li; /* 32-bit wide */ 1. i = 65535 + 3; 2. i = 1 - 3; 3. li = (unsigned long)0xFFFFFFFF + 3; 4. li = 1...
67
by: Ike Naar | last post by:
Hi, Asking your advice on the following subject: Suppose I want to find out whether a given pointer (say, p) of type *T points to an element of a given array (say, a) of type T. A way to...
11
by: Edd | last post by:
Hello all, I've made a data structure and an associated set of functions to enable me to store a dynamically-sized array of elements of whatever data type I like. Well that's the idea anyway......
11
by: Sushil | last post by:
Hi Gurus I've tried to come up with a small logical example of my problem. The problem is platform specific (MIPS) which I understand should not be discussed here. So here goes my example: ...
11
by: ike | last post by:
Could you please give your opinion on the portability of this code? /* -------- begin findindex.c -------- */ struct Foo { int junk0; }; struct Bar { int junk1; struct Foo foo; int junk2; }; ...
11
by: junky_fellow | last post by:
Can I subtract two pointers of same type that are pointing to the two different location of memory allocated by malloc. eg. #include <stdlib.h> int main(void) { unsigned char *c_ptr;...
5
by: Angel Tsankov | last post by:
Does the standard define what happens when a NULL pointer is dereferenced? If so, where?
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
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...
0
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
0
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 projectplanning, coding, testing,...
0
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
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
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
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 ...

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.