Hi!
I am writing a program that'll read binary integers from a file, put them
into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it
will not work.
Is it just a Win32-issue, or a bug?
--
Regards,
Ronny Mandal
This e-mail and any attachment are confidential and may be privileged or
otherwise protected from disclosure. It is solely intended for the person(s)
named above. If you are not the intended recipient, any reading, use,
disclosure, copying or distribution of all or parts of this e-mail or
associated attachments is strictly prohibited. If you are not an intended
recipient, please notify the sender immediately by replying to this message
or by telephone and delete this e-mail and any attachments permanently from
your system. 16 1984
>This e-mail and any attachment are confidential and may be privileged or otherwise protected from disclosure. It is solely intended for the person(s) named above. If you are not the intended recipient, any reading, use, disclosure, copying or distribution of all or parts of this e-mail or associated attachments is strictly prohibited. If you are not an intended recipient, please notify the sender immediately by replying to this message or by telephone and delete this e-mail and any attachments permanently from your system.
It's absolutely ridiculous to put this on a worldwide USENET posting.
Don't threaten people you want to help you.
I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work.
Describe how you can tell the difference between "works" and "doesn't work".
Some code would be nice.
I suspect that you are running over the end of the array, and that
you can get away with it with an odd number (possibly because malloc()
rounds up the size), but not with an even number (when it might not
round up). But there's no way to tell without code.
Gordon L. Burditt
Ronny Mandal wrote on 19/04/05 : I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work.
Is it just a Win32-issue, or a bug?
Hard to say. What do you meant by "it will not work." ? Post a
compilable snippet that exposes the problem with a description of the
environment (required inputs, expected outputs...)
--
Emmanuel
The C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
The C-library: http://www.dinkumware.com/refxc.html
"C is a sharp tool"
Ronny Mandal wrote: Hi!
I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work.
Is it just a Win32-issue, or a bug?
The latter. My crystal ball tells me your error
is on line 42.
"Doctor, it hurts!"
"What hurts?"
"What do you think you're doing, snooping in my
personal affairs?"
-- Er*********@sun .com It's absolutely ridiculous to put this on a worldwide USENET posting.
No it is not. I've noticed stranger things about c-releases, e.g in
non-stable releases that is almost like "doesn't work when the moon is
full", which other people from the USENET have had issues with. And then,
because of the USENET, the inquirer receives help.
Don't threaten people you want to help you.
I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work. Describe how you can tell the difference between "works" and "doesn't work". Some code would be nice.
Well, in general people on USENET is not interested in posted code. But
after trying to isolate the problem into a few lines of code, it still
behaves strange. I suspect that you are running over the end of the array, and that you can get away with it with an odd number (possibly because malloc() rounds up the size), but not with an even number (when it might not round up). But there's no way to tell without code.
This seems like a plausible answer, regarding the "you can get away with it
with an odd number". I've never read anyplace about how malloc works
"internally ", but maybe it is written in the FAQ. But since the FAQ is
really extensive, I sometimes ask people from ther USENET. Gordon L. Burditt
--
Ronny Mandal
Gordon Burditt wrote: This e-mail and any attachment are confidential and may be privileged or otherwise protected from disclosure. It is solely intended for the person(s) named above. If you are not the intended recipient, any reading, use, disclosure, copying or distribution of all or parts of this e-mail or associated attachments is strictly prohibited. If you are not an intended recipient, please notify the sender immediately by replying to this message or by telephone and delete this e-mail and any attachments permanently from your system.
It's absolutely ridiculous to put this on a worldwide USENET posting. Don't threaten people you want to help you.
That part of the sig is likely put there by the server through which the
message was posted. It's probably not the OP's fault.
--ag
--
Artie Gold -- Austin, Texas http://it-matters.blogspot.com (new post 12/5) http://www.cafepress.com/goldsays
Ronny Mandal wrote: It's absolutely ridiculous to put this on a worldwide USENET posting.
No it is not. I've noticed stranger things about c-releases, e.g in non-stable releases that is almost like "doesn't work when the moon is full", which other people from the USENET have had issues with. And then, because of the USENET, the inquirer receives help.
He was referring to the stuff at the botom of your sig.
Don't threaten people you want to help you.
I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work. Describe how you can tell the difference between "works" and "doesn't work". Some code would be nice.
Well, in general people on USENET is not interested in posted code. But after trying to isolate the problem into a few lines of code, it still behaves strange.
Not true. Best is to post the *minimal* compilable code that exhibits
the behavior that made you post in the first place.I suspect that you are running over the end of the array, and that you can get away with it with an odd number (possibly because malloc() rounds up the size), but not with an even number (when it might not round up). But there's no way to tell without code.
This seems like a plausible answer, regarding the "you can get away with it with an odd number". I've never read anyplace about how malloc works "internally ", but maybe it is written in the FAQ. But since the FAQ is really extensive, I sometimes ask people from ther USENET.
Understood. When it comes to malloc(), however, its internal workings
should be generally transparent. As has been mentioned above, an overrun
in some other piece of dynamically allocated memory is likely the culprit.
HTH,
--ag
--
Artie Gold -- Austin, Texas http://it-matters.blogspot.com (new post 12/5) http://www.cafepress.com/goldsays
"Ronny Mandal" <ro*****@math.u io.no> writes: I am writing a program that'll read binary integers from a file, put them into a dynamic array. THe array is first declared
int* a = malloc( sizeof( int ) * N ) <-- N is the number of slots.
When N is odd, the program will work just fine, however when N is even, it will not work.
Is it just a Win32-issue, or a bug?
You have a typo on line 372 of main.c.
I'm only guessing, but that's all I can do with the information you've
provided. What is your program attempting to do? How exactly does it
not work?
Can you post a small complete program that exhibits the problem?
(If it's a Win32 issue, we can't help you here.)
This e-mail and any attachment are confidential and may be privileged or otherwise protected from disclosure.
[snip]
It's not an e-mail, it's a Usenet posting. I suggest you drop the
meaningless disclaimer.
--
Keith Thompson (The_Other_Keit h) 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.
In article <3c************ *@individual.ne t>,
Artie Gold <ar*******@aust in.rr.com> wrote: That part of the sig is likely put there by the server through which the message was posted. It's probably not the OP's fault.
Quite so, but if we don't complain to people who use such servers, how
are they ever going to be replaced?
If, by choice, you use a server that adds this sort of thing to your
message, it makes you look silly. If you work for a company that puts
it on all your outgoing messages, it makes your company look as if
they don't understand the net, and are probably the sort who spend
more money on lawyers than products.
-- Richard This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Edd Dawson |
last post by:
Hi. I have a strange problem involving the passing of command line
arguments to a C program I'm writing. I tried posting this in
comp.programming yesterday but someone kindly suggested that I'd have
better luck here. So here goes!
My program ignores any command line arguments, or at least it's
supposed to. However, when I pass any command line arguments to the
program, the behaviour of one of the functions changes mysteriously. I
have...
|
by: Noah Roberts |
last post by:
There is some windows specific code in this, but I believe the issue to
be something standard so...
The problem is that after attaching the name of the subdirectory I have
something like "d:\db\db-4.1.25\", which has 16 characters; but when it
arrives in the next call it looks more like "d:\db\db-4.1.25\(clubs)",
which has 17 characters. What is even more interesting is that the test
"if (dir != '\\')" fails when there is a clubs at the...
|
by: bear |
last post by:
hi all,
I have a program whose speed is so strange to me. It is maily used
to
calculate a output image so from four images s0,s1,s2,s3 where
so=(s0-s2)^2+ (s1-s3)^2. I compile it with gcc (no optimization). the
codec between /***********/ is the initialization code. What supprise
me a lot
is the code with initialization(io==1) is much faster than without
initialization(io!=1). The initialization code should takes some time
and it should...
|
by: sylsau |
last post by:
Hi,
I am doing a little program who calculates the permutation of a set of
vertex.
I use the recursivity for this calcul.
My function who calculate the permutations :
void permutation(set *e, int *current, int nbre)
{
|
by: Me |
last post by:
Hi,
I ran into a malloc problem but I can't find the solution.
I try to read a file into a variable with malloc like this:
BYTE *lcdata;
lcdata = malloc(fsize*sizeof(BYTE));
| |
by: rkk |
last post by:
Hi,
My mergesort program is below. There is a small piece of logical
error/bug in this code which I can't figure out, as a result the output
array isn't completely sorted. Requesting your help to resolve this
problem. Thanks in advance.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
|
by: gribouille |
last post by:
Hi,
via fgets() i create a array containing a text file.
fp = fopen(argv, "r");
while ((c = fgetc(fp)) != EOF) {
line = c;
when i want to print it
|
by: angryRotarian |
last post by:
Im trying to write a MPI C program for a debian cluster that multiplies matricies. Ive written almost all of it, but cant seem to shake a strange problem. Here is the code:
#include <stdio.h>
#include <stdlib.h>
#include <mpi.h>
#define MASTER 0 // Make code more readable with names
#define OTW 1 //"..."
#define ITM 2 //"..."
|
by: MN |
last post by:
Hi,
I was writing a program that must dynamically allocate memory to a 2-
dimensions array, initialize it to 0, then place the result of
multiplication of two 1-dimension arrays as described in the next code
example.
My code is:
#include<stdio.h>
#include<stdlib.h>
|
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, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
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, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
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 tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
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 Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
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 then checking html paragraph one by one.
At the time of converting from word file to html my equations which are in the word document file was convert into image.
Globals.ThisAddIn.Application.ActiveDocument.Select();...
|
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 last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
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 we have to send another system
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |