logo
down
shadow

CreateThread() passing struct arguments weirdly


CreateThread() passing struct arguments weirdly

Content Index :

CreateThread() passing struct arguments weirdly
Tag : c , By : LinnheCreative
Date : November 28 2020, 09:01 AM

To fix the issue you can do I'm passing a struct to CreateThread() function. The same code on another machine works fine. But on my machine, "SendItem" always becomes 0xccccccc Bad Ptr>. Does anyone know why?
....
myStruct mystruct; 
CreateThread(NULL, 0,  (LPTHREAD_START_ROUTINE)SendItem,(LPVOID)&mystruct, 0, &thread);
...
void start_thread(void)
{
    myStruct *mystruct = malloc(sizeof(*mystruct));
    if (!mystruct)
        return;

    CreateThread(NULL, 0,  (LPTHREAD_START_ROUTINE)SendItem, (LPVOID)mystruct, 0, &thread);
}

Comments
No Comments Right Now !

Boards Message :
You Must Login Or Sign Up to Add Your Comments .

Share : facebook icon twitter icon

Passing a parameter to CreateThread


Tag : delphi , By : Elwillow
Date : March 29 2020, 07:55 AM
should help you out The problem here is that your thread function has the wrong calling convention. You need to declare it with the stdcall convention:
function ThreadProc(param: Pointer) : DWORD; stdcall;
type
  TBlah = class(TThread)
  protected
    procedure Execute; override;
  public
    fe: Integer;
  end;

procedure TBlah.Execute;
begin
  ShowMessage(IntToStr(fe));
end;

var
  b: TBlah;

begin
  b := TBlah.Create(True);
  b.fe := 42;
  b.Start;
  b.WaitFor;
end.

multiple arguments to CreateThread function


Tag : cpp , By : Brian
Date : March 29 2020, 07:55 AM
seems to work fine You can create a structure that holds all relevant data and pass a pointer to an instance of that structure (filled with the appropriate parameters) to CreateThread()
In your thread creation function you will need to cast the LPVOID back to a pointer to your structure to use it.

C - Passing struct addresses as function arguments


Tag : c , By : Nosayaba
Date : March 29 2020, 07:55 AM
may help you . &planet->distance is actually evaluated as &(planet->distance), so means taking address of the member of the structure, which scanf() requires for updating that member with input value.

Passing struct argument to CreateThread() and not receiving char* variable


Tag : cpp , By : cmhudson
Date : March 29 2020, 07:55 AM
I wish this helpful for you Assuming you set 'chunk' in the initialize data code then the pointer in the remote address space will be referencing the address in the local process.
The easy way to get around this would be to make chunk an array (probably the last member of the struct) and allocate a block large enough to hold chunk's data.

Win32 CreateThread() Arguments Zero'ed?


Tag : cpp , By : protagonist
Date : March 29 2020, 07:55 AM
Related Posts Related QUESTIONS :
  • How to print 2-byte unicode characters
  • The execution of open when using O_CREAT
  • Parsing Command Line Arguments for Shell
  • Undefined length of character arrays
  • Do condition formats in if/else if statements have to match in C?
  • Generate ordered passwords for brute forcing in C
  • Problems with pointer into structure
  • Why does this C program print output "10" irrespective of the for loop?
  • taking output 2D array in matrix form
  • sizeof char pointer and pointer to pointer
  • does the following program cause memory leak?
  • Innacurate file readings from fopen and/or fscanf
  • Searching an element in an Array using Recursive Function in C Language
  • Most fastest C code to count recursively directories in Linux ( without files )
  • Why does C not offer syntactically transparent references like C++ and Java do?
  • Code doesn't get excuted after using continue in while loop
  • How can I maintain correlation between structure definitions and their construction / destruction code?
  • Avoid race conditions when using pointers and threads
  • Binary and Decimal converting
  • How to create input tensors and use with interpreter in Tensorflow Lite (experimental C API)?
  • Unexpected typecasting between values in C
  • Trouble with Forking Process and Calling bc using execve
  • Glib Threads vs GMain Loop Eventing
  • Why does the byte sequence turn when I cast a char array to an integer array?
  • Is there any difference usage in external interrupt between GPIO (AHB bus)and those (APB bus)?
  • Trouble programming AVR to interpret input from Arduino rotary encoder module
  • Is it correct to use a do-while loop inside a for loop? Why and why not?
  • Why we can't use dot for new created pointers to structs
  • Atomicity of fprintf from MPI processes
  • Printing of negative value in c via printf
  • What's the difference between global or local variables regarding the main function?
  • movsd from memory to xmm0 in c x86-64 jit
  • Problem with a function that insert the content of a csv into an array of struct
  • Segmentation Fault running time on sem_post(flag)
  • Extracting values from an incoming bluetooth serial on an arduino
  • "How much memory space does an array takes if the maximum size that is declared is not used?"
  • C GTK2 frustrated with gnome documentation
  • What really happens when a dynamic memory allocation is explicitly converted to struct type?
  • Re-Indexing Bits Within a Char
  • pointer de-referencing balagurusamy
  • Is it safe to memcpy regex_t?
  • Find a tight upper bound on complexity of the below program:
  • FFTW results differ from FFT in MATLAB
  • How to fix Misra 2012 violation , " Assignment operation in expression "
  • What is the difference between "int *p =0;" and "int *p; *p=0;"
  • Strncpy gives unwanted characters at end of string
  • What is really happening behind when a constant is assigned to a pointer variable?
  • Having trouble tracking logic of program includes Fork()
  • Are leftshift operators dependent on register size?
  • How to pass and receive back pointer to array of structures?
  • How to convert 2 bytes into a signed short in C
  • Using while loop to print Ascii Table with 10 characters per line
  • Is it possible to compress binary files with Huffman-encoding?
  • Why I am getting missing terminating " character?
  • Function call problem in data structure learning
  • Getting a segmentation fault trying to pass a node
  • Copying chars from file into an array
  • How to measure the time in seconds between two characters while user inserting them as an input
  • How to print two strings on the same line in c
  • Passing ("text"+1) argument to Strlen function in C. Why is Output 3?
  • shadow
    Privacy Policy - Terms - Contact Us © scrbit.com