C++ :: Multithread Application - Global Dynamic Array

Nov 18, 2013

Let's have global dynamic array p defined as

volatile int p[];

Let's use it in a multithread application, where every thread can change array's size by

new_p = realloc(p, new_size);
if (!new_p) exit 1;
p = new_p;

For simplify assume that we have no problems with it's size and indexing.

Expression like

int x = p[i];

is unsafe cause thread (1) takes the pointer and (2) add the index. Executing of this thread may be stoped after first step before second step. In this time other thread can realloc the array, which move it to some other place in memory. Executing second step after it will add index to wrong pointer. So we will have segmentation fault.

View 2 Replies


ADVERTISEMENT

C++ :: Accessing Symbols In Application From Within Dynamic Library MinGW

Apr 17, 2013

I am porting an application from Linux to Windows. Since it is a GTK app most of the stuff works; I have to touch a little here and there. One problem though I cannot find the solution as it seems. The application uses a plugin system for easy expandable functionality. The interface to the plugin is very simple: an init function, a worker function, and a deinit function. The plugins shall have access to the main applicationsymbols (functions global variables). I cannot find a working (and feasible) way under Windows to make the linking work. I always get "undefined reference" errors for symbols which exist in the application. I am using MinGW 4.6.2. I made a stripped down demo application to be able to better (and faster) test the principle. I am using the dlfcn-win32 project from Ramiro Polla [URL]... for the dynamic loading stuff and it works like a charm.

Here is the project:
plugintest.tar.gz
plugintest.zip

It tried a number of commandline options to the linker for the application (--export-all-symbols, --export-dynamic, -rdynamic (apparently not supported in MinGW)) as well as for the shared objects (--allow-shlib-undefined, --enable-auto-import, --enable-runtime-pseudo-reloc).

As you can see in the provided makefile under Linux it is just "-shared" for the .so. Under Mac OS X (Darwin) it is "-bundle -bundle_loader <app name>".

Either it is a different configuration / environment or I must have overlooked something. How to do this and if it is even possible in Windows?

Here is a .zip archive of the dlfcn stuff with modified makefile, which works on the cmd.exe command prompt; MSYS is not required. Just adjust the MinGW installation path in config.mak and type 'make" and 'make install'. dlfcn-win32-r19.zip

View 9 Replies View Related

C++ :: Fill Value Of Dynamic Array Of Dynamic Arrays?

Jan 4, 2013

I'm writing a program in which I have to use a matrix to represent a file in code. because it's a file, the size of the matrix is undefined, and therefore the matrix has to be dynamic. I found out that my compiler doesn't like dynamic multidimensional arrays, so I was thinking of this matrix as a dynamic (monodimensional) array of other dynamic (monodimensional) arrays. My program (and thus this example) uses unsigned chars.

unsigned char variable=something;
unsigned char**matrix=new unsigned char*[lenghtOfMainArray];
for(int rowNumber=0;rowNumber<lenghtOfArray;rowNumber++)
{

[Code].....

View 2 Replies View Related

C# :: How To Multithread Port Scanning App

Jan 24, 2012

I'm creating a small port scanning app which use a port range defined by user.My problem with the code is that I find it not efficient enough meaning that it ping very slow, especially when ports are not responding meaning that I must wait for the timeout before continuing to next port.

I want to make this small app threaded. The problem here is that I'm kind of blank of how to implement threading in my program. This is my code which is a method which does the actual checking, the other part of the code is a simple button with for loop for advancing my port number.

Code:

private void ScanPort(IPAddress address, int port) {
using (TcpClient client = new TcpClient() {
IAsyncResult result = client.BeginConnect(address, port, null, null);

if (result.AsyncWaitHandle.WaitOne((int)nudTimeout.Value, false)) txtDisplay.AppendText("Port: " + port + " is open." + Environment.NewLine);
else txtDisplay.AppendText("Port: " + port + " is closed." + Environment.NewLine);
} }

I have read some basic threading tutorial but I just don't know how to implement this piece of code so I can check ports much faster.

View 3 Replies View Related

C++ :: How To Multithread Socket Serve

Feb 19, 2013

I'm having a bit of trouble learning how to multithread a socket server. I have everything working perfectly fine, but it only accepts one client (I would like multiple clients). some sort of example (I have troubles understanding some things, unless its visual).

View 4 Replies View Related

C :: Declare Global Array And Then Use It In Few Functions

Jan 22, 2015

I want to declare a global array and then use it in a few functions. When I want to assign any number to that array I face with this error:

Code:
a.c:11:6: error: expected expression before ']' token
n[]={1,2,3,4,5};
^

The code is:
#include <stdio.h>
int n[5]; // I need to define the array here to be global
int main () {
n[]={1,2,3,4,5};

[Code] .....

View 6 Replies View Related

C :: Writing Log File In Multithread Program

Oct 20, 2014

I'm currently finishing writing some small application. I want to be able to log important information about the program execution to a logfile, and I have several questions.

First of all - I'd prefer to make the part that logs information to a file separate from the code I've already written. So, what interface should I expose to the rest of the program? Is one function void log(const char*); enough?

Another thing that came to my mind; my program runs two threads, and I want to be able to write to the log file from both threads, so the question is: Should I make sure that the writing to the file is mutually exclusive?

And if so, whose responsibility is it to make the logging to the file thread-safe? The actual part that does the logging (void log(const char*) for that matter), or the parts of the program that calls log(const char*) ?

And lastly, and probably less importantly, where is it customary to save the logfile? (the user's home folder maybe?)

View 3 Replies View Related

C++ :: Finding Multithread Program Error?

Aug 3, 2013

How do I find an error in a multithreading program (written in C)? I get an address, but when I put it into psp-addr2line, i get

??
??:0

View 2 Replies View Related

C# :: MultiThread Blocking Updates During Read

Oct 6, 2014

I have a class holding my data strcuture:

// Holding real time option data - should be thread safe
public class OptionRTHolder {
ConcurrentDictionary<double, Quates> book_calls;
ConcurrentDictionary<double, Quates> book_puts;
ConcurrentDictionary<double, List<Single_qoute>> transaction_calls;
ConcurrentDictionary<double, List<Single_qoute>> transaction_puts;
ConcurrentDictionary<double, int> volume_calls;
ConcurrentDictionary<double, int> volume_puts;
DateTime curr_time;
}

I get a stream of data messages, that come in order, each message carries a time and data. I have many threads in paralell pulling messages and in turn update the data strucutre as follows:

Quates and volume data are just overrun (new value overrun former values), also thier size and meta data is fixed (they don't grow post init).

Via the list I have a problem, I would want to lock only the list I am working on. so other lists can update in paralell, what I had in mind was to warp the list in order to warp the add/get calls to make it thread safety, this I think will achieve this goal and I would like to get some assertion from this forum if you may.

Here come my real problem, there are points in time I want to read/copy this structure, during this time I want to block all updating threads as I want to freeze structure in time, is that achiveable ? Idea that I had is to use something like aquire that will get a function (update/read) and a flag that will cause a lock when the read is on...something like that.

View 3 Replies View Related

C :: User Input Variable To Global Array

Oct 11, 2013

I am trying to create a global array with user-defined dimensions.the code is:

Code:

int matr_size()
{
int x = 0;
printf("Please enter the number of nodes: ");
scanf( "%d", &x);
printf("There are %d nodes in this simulation.", x);
getchar();
return x;
}

[code]....

I read that an array cannot be defined by a variable in C so I assume that is the issue, but I'm not sure how else to do it. Previously the size was defined by #define NODES and it worked fine but I need this user input.

View 5 Replies View Related

C++ :: Global Char Type Array Initializing

Mar 20, 2015

I am not getting any error below

--------
#include <iostream>
using namespace std;
void main()
{
char sqr[3];
sqr[0] = '1';
sqr[1] = '1';
cout << sqr[0] << sqr[1];
while (1);
}------------

but if I move my char type array before main , I get error l

----------------------------
#include <iostream>
using namespace std;
char sqr[3];
sqr[0] = '1';
sqr[1] = '1';
void main()
{
cout << sqr[0] << sqr[1];
while (1);
}
-------------------

View 8 Replies View Related

C++ :: Why Can't Static Array Copy Values From Dynamic Array

Mar 13, 2013

But it can the other way around

Code:
static_Array= dynamic_Array;
dynamic_Array = static_Array;

The second statement works and i'm able to print out both arrays with equal values but with the first

[code] static_Array = dynamic_Array;I get incompatible types in assignment of 'int*' to 'int [7]' is the error I get [/code]

View 2 Replies View Related

C# :: Server Application Using Tcp Protocol And Then Establish Connection With A Client Application

Nov 29, 2014

What happens if I make a server application using tcp protocol and then establish connection with a client application but the server crash and then the client send data. Will the data be lost or the system will continue trying to send it?

View 2 Replies View Related

C :: Dynamic 2D Array To Function?

Jul 15, 2013

Code:
Int** d = malloc( ROWS * sizeof(int*));
for (i = 0; i < ROWS; i++)
d[i] = malloc(COLS * sizeof(int));
fx(d);

My question is, in a function declaration, why do I not have to specify the number of columns. How is this different than when I pass a static 2D array to a function, in which I must declare the function parameter with the number of columns.

Code: void fx(int d[][COLS]);
VS.
Code: void fx(int **d);

View 7 Replies View Related

C++ :: How To Get Size Of Dynamic Array

Jun 12, 2013

I remember in C++, when a dynamic array is allocated, the size of this array is stored right before the array in memory. Therefore compiler knows exactly how long, when this array is deleted.

Do all compilers store the size this way? Is it a safe method to get the size of a dynamic array?

Here is a example code, it works fine on Visual Studio 2012.

#include <iostream>
using namespace std;
class dummy {
public:
dummy() {
cout<<"dummy created"<<endl;

[Code]...

View 2 Replies View Related

C++ :: How To Change Array To Dynamic

Sep 13, 2013

So this is the code I have so far, I didn't know it had to be a dynamic array so how would I Utilize dynamic array allocation to size the modal array

#include <iostream>
using namespace std;
int main() {
const int arraySize = 25;
const int patternSize = 10;

[Code] ....

View 1 Replies View Related

C++ :: Dynamic Map Creation Or Array

Mar 4, 2014

I need to create dynamic array or map. for example

CString *a1;
CString *a2;
CString *a3;

it minimized to using for loop.
for (int i=1;i<=3;i++) {
CString s="a"+"itoa(i)"
CString *s;
}

Something like this. its same as map concept.

View 1 Replies View Related

C++ ::  Dynamic Allocation 2D Array

Nov 14, 2013

I need to confirm that this problem cannot be solved without a pointer. Namely I need to read the rows and columns number from the user cin >> m, n and then use to declare an array int A[m][n];

However as m and n are not constants I am not able to do that. Is there a workaround? The following is the solution I came with BUT using a pointers which should be not the case.

// solution with using pointers as "int A[m][n]" does not work for me!!!
void TwoDimensionalArrayFunc(){
int m = 0;
int n = 0;

// instruct the users to enter array dimensions
cout << "Please insert value for m:";
cin >> m;

[Code] ....

View 6 Replies View Related

C++ :: Using Array With Dynamic Size?

Feb 6, 2013

arrays with dynamic sizes. That being said, I'm working with a simple code which seems to work just fine, my only concern is that once I display the 'char array', not only displays the user's inputs but some extra data, symbols and what not.

why, if to my understanding the first user's input already sets the size of the array

#include <iostream>
#include <iomanip>
using namespace std;

[Code].....

View 12 Replies View Related

C++ :: Dynamic Allocation From Array?

Dec 26, 2012

I need to write 2 functions:

1. MyMalloc
2. MyFree
___________________________

I have a 1000 bytes global array (which did not dynamic allocated).

I need to make "dynamic allocation" from this array.

For example - MyMalloc(50) ---> The program will allocate 50 bytes OF THE ARRAY'S SIZE.
------
MyFree(pointer) ---> I need to check if the pointer is in the array and free the space.

It should be managed by blocks. The array should also contain the manage variables (for me).

View 19 Replies View Related

C# :: How To Start Application And Automatically Pass Input To That Application

May 9, 2012

I want to create an application that starts an application and passes input to that application. I know how to start a process using the classes in System.Diagnostics, but I don't know how to pass data to the process.

For example, and this is just an example, I would like to be able to automatically start an application that requires a username and password and automatically enter the username and password. Of course, that might open the door to security vulnerabilities, but that's not the point of the exercise.

How to implement the functionality I described? Is there a general way to go about doing this or does it depend entirely on the idiosyncrasies of the application in question?

View 2 Replies View Related

C++ :: Copy Constructors For A Dynamic Array

Dec 13, 2013

I am trying to figure out copy constructors for a dynamic array and I am definitely missing something. If I go into the copy constructor routine during debug, the values appear to be correct but they don't percolate up to the newly created object. I'll post a portion of the code below:

Code:

// include header files for the classes that are being used
#include "stdafx.h" //

NOTE: THis reference must be added to all cpp files in Visual Studio Express 2013

#include <iostream>
#include <string>
#include <cstdlib>
#include <map>
using namespace std;
const int ARRAY_SIZE_DEFAULT = 32;
class vectorOfInt {
public:

[code]....

The size of c is 0. Values of a were not copied to c, although they appear to do so within the copy constructor routine.

View 7 Replies View Related

C# :: Not Loading Dynamic Array (128,8) Correctly

Feb 14, 2013

Code:
public void dam_data_setup() {
// fill list
damgtype.Add( den1);
damgtype.Add( den2);
damgtype.Add( da1);
damgtype.Add( da2);
damgtype.Add( db1);
damgtype.Add( db2);

[Code] .....

This is a genetics program and is to parse the source array and write all possible combinations to a new array. All sections but dilute work correctly. For some reason the dilute's Boolean is not testing true when it should. This is causing data corruption.

View 3 Replies View Related

C :: Dynamic Array Of Pointers To String

Jun 11, 2013

I have a little problem with one of my functions. The function purpose is to get a number (n) and create an array (size n) with pointers to strings (each string length is 20 chars) and i don't know why but during the debugging i get a <bad ptr> message and this message :

CXX0030: Error: expression cannot be evaluated

This is my function:

Code:
char** getlist(int n) {
int i=0;
char **arr;
arr=(char**)malloc(sizeof(char)*n);
if (arr==NULL)

[Code] ....

View 8 Replies View Related

C :: Dynamic Array Of Linked List

Jan 29, 2014

I am trying to create an dynamic array (lno) This array will store addressess of different Linked list. What exactly I want is:- Take N Number of Linked List user want to create> eg. 2 now It will create 2 linked list for which I am trying to allocate memory.

Code:

struct node{
int data;
struct node *next;
}

first;
lno[0] Node 0's first address stored in ln[0] lno[1] Node 1's first address stored in ln[1] Here is the code in which I am facing problem with error Illegal structure Operation

Code:

#include<conio.h>#include<stdio.h>
#include<stdlib.h>
struct node
{
int data;
struct node *next;
};

[code]....

View 1 Replies View Related

C++ :: Dynamic Allocation For String Array

Jul 27, 2013

I coded a program that takes some strings and lexicographically orders the strings and its substrings. I have used dynamic memory allocation technique and its working fine for all strings without consecutive same alphabets.I use a list in which a string is placed in its exact position by moving the others right.

#include <stdio.h>
#include <string.h>
#include <math.h>
#include <stdlib.h>
#include <conio.h>

[code]....

View 4 Replies View Related







Copyrights 2005-15 www.BigResource.com, All rights reserved