Tags down


Dereferencing double pointer to pass to recursive function

By : jamie p
Date : October 18 2020, 06:10 PM
Hope that helps To answer the question as asked:
void tree_input() takes a pointer to a pointer as an argument, and node_s->left is a pointer. So all you have to do is get a pointer to the pointer by using the address-of operand.
code :
tree_input(value, &(*tmproot)->left);

Share : facebook icon twitter icon

Dereferencing a double pointer just once?

By : fohinni
Date : March 29 2020, 07:55 AM
To fix the issue you can do Trace the execution with gdb, then you will see that the last line *iPtr2=iPtr1 doesn't change anything. (it's kind of like iPtr1=iPtr1)
On iPtr2 = &iPtr1;, the iPtr2 already points to the address where iPtr1 THE POINTER lies NOT THE ADDRESS iPtr1 points to.

Dereferencing a double-level pointer results in different behaviour from dereferencing a single-level pointer

By : Wissem BL Maraghni
Date : March 29 2020, 07:55 AM
like below fixes the issue They are very different things. An int** is a pointer to a pointer to an int. If you dereference it, you get an int*. An int* is a pointer to an int. If you dereference it, you get an int.
In the first example, you pass an int** with value 0x4df73c as the first argument to work. You then dereference this, which should give you an int*. That is, 0x4df73c is the address of an address and doing *pointer has gotten you the second addess. You then do pointer arithmetic with this int* by adding (offset/sizeof(int)), which works out how many ints there are with offset bytes. So when you add this value, your int* will move along to point at the int at that offset. You then return this int* and all is well.
code :
return (int*) (*pointer + offset);

dereferencing pointer that was cast to double pointer

By : Cat Z
Date : March 29 2020, 07:55 AM
it helps some times I am having some trouble understanding these two lines of code.
code :
Free = *((T**)Free);
Free = (T *) *Free;

Dereferencing double pointer

By : Ville Leinonen
Date : March 29 2020, 07:55 AM
With these it helps This program should produce multiple compiler warnings. Fixing them goes long way toward fixing the problem, and clearing out any misunderstandings.
The type of b is an array of pointer-to-pointer-to-int. That's why the two assignment below are invalid:
code :
*(b+0)= &val1; 
*(b+1) = &val2; 
printf("%d\n", b[0][0]); 
int **b[3];
*(b+2) = &val3;
int *b[3];
*(b+2) = val3;

Dereferencing pointer to a pointer doesn't work when I pass it to a function. Why? (C)

By : netslayer
Date : September 27 2020, 02:00 AM
like below fixes the issue The error is that this 2D-array is laid out as 4 x 4 = 16 integers. But your function expects a pointer to pointers.
It's right that at the calling site the address of matrix is provided as the argument. But unlike some commenter said, it's not a pointer to int but a pointer to an int-array.
code :
void test_matrix(int (*matrix)[4])
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", *(*(matrix + i) + j));
void test_matrix(int matrix[][4])
    for (int i = 0; i < 4; i++) {
        for (int j = 0; j < 4; j++) {
            printf("%d ", matrix[i][j]);
*(*(matrix + i) + j)

Related Posts Related Posts :
  • Avoid Overflow when Calculating π by Evaluating a Series Using 16-bit Arithmetic?
  • How to handle data or char -1 when reading from file, since EOF is also -1
  • Compare every 1kb of contents of two files instead of character by character
  • Understanding functions in stm8s disassembly?
  • Recursive and no-recursive get different answer
  • Can anyone explain the following output of the code?
  • How to resync time from NTP server in esp-idf?
  • Output for the following C code is confusing me
  • Determine if window is visible with High CPU
  • Writing a file by taking input from user only saves value for "x" only
  • How should I fill an array of ints from a file using command line args? The size of the file and the no. of elements may
  • Segmentation Fault While Reading File in C
  • Fill an array at index n with m times data without bit-fields
  • Why don't the values I type in the terminal match the values I've already stored in the array?
  • MPLABX XC16 unable to resolve built-in identifier __builtin_dmaoffset
  • How call and compile function from elf to my binary?
  • Modifying non-const char array that is referred to by const char array
  • Does anyone see any mistakes here? I am trying to get a message via a pipe, from my parent to child
  • Memory Leak - Singly linked list in C
  • Trouble with translation of typedef between C to D
  • Why does SIGINT stop sleep more than one time?
  • How to pause a timer created with CreateTimerQueueTimer
  • How can I read data from file ? I can't fix it
  • Scanf in visual studio not accepting multiple cases of characters
  • How can I determine if a char* is a windows line ending?
  • I am trying to store value in long long int type but giving wrong return
  • How to manage different kinds of data in a linked list?
  • uint8_t not rollover to 0 after reaching 255 not working properly
  • Why do these two execvp produce different results?
  • Pass uintmax_t or size_t to custom printf conversion specifier
  • Why does free() leaves stuff in memory?
  • Why pointers can't be used to index arrays?
  • memory allocation eror in C
  • C custom datatypes mapped to C datatypes grouped under a single struct
  • pipe() data is not transferred to child process
  • Getting a core dump from a simple C program
  • Fatal error on makefile, need to understand the problem
  • How can I add a delay of 90 minutes when a port has gone from 0 to 1?
  • To use strcpy or not
  • the usage of strtok() in c shows warnings and returns segmentation fault(core dumped)
  • Trouble allocating array of structs
  • Only first char of user input used in array
  • Why does "int x = 5; printf("%d %d %d", x==5, x=10, x==5);" in C print "0 10 0"?
  • How to scan specific string format in C?
  • sscanf skipping the final value when reading multiple values from a line
  • How can I access full memory space in FreeDOS with C application
  • Semantics of sem_getvalue() in POSIX
  • What does the [x,y] symbol mean in a multidimensional array access?
  • compilation error: cast from pointer to integer of different size
  • why am i getting compilation error "error: conflicting types for ‘ptr’ " for the following code? static int va
  • Why does getw return -1 when trying to read a character?
  • Why C program in whch two functions call each other recursively gives segmentation fault on linux?
  • ssize_t is undefined
  • Passing a generic argument in a C function
  • Restoring stdout after redirecting it via freopen()
  • Tuples "cannot be marshalled in a foreign call" when trying to export a Haskell function to C
  • Why is the output different in these two scenarios
  • what will happen if we dont use free() for allocated memory
  • counting words from user input
  • Why am I not getting the concatenated string?
  • shadow
    Privacy Policy - Terms - Contact Us © 35dp-dentalpractice.co.uk