logo
down
shadow

Passing pointers as a parameter in C++ rather than using this pointer


Passing pointers as a parameter in C++ rather than using this pointer

By : user2953619
Date : November 21 2020, 01:01 AM
wish help you to fix your issue First thing to get straight: a non-static member function is essentially just like any other function, but has an implicit parameter called this which is a pointer to the object that the member function was called on. That is, calling foo.bar() can be thought of as similar to calling bar(&foo), where the first parameter is called this.
Now, in your first case, if you do some_box.getVolume(), it will calculate the volume of some_box, since a pointer to some_box is passed as this.
code :


Share : facebook icon twitter icon
C++ Confusion using delete when asigning a pointer to a pointer (and passing pointers to classes)

C++ Confusion using delete when asigning a pointer to a pointer (and passing pointers to classes)


By : rt3norio
Date : March 29 2020, 07:55 AM
it should still fix some issue You definitely should delete your dynamically allocated objects somewhere. Could as well do it it the destructor of MainClass, but personally, I'd consider it a bad style. Why? Because you're allocating and deleting in different places, in different entities. In fact, you're transferring ownership of these objects, so you should be very careful to not to delete twice or something. I'd rather use shared_ptr or unique_ptr and releave my mind of all this micromanagement. You can search those on the web, and they are extremely easy to use.
As for the second question - you MUST only delete every object once. Copying pointers doesn't create new object, it's just another pointer to the same object.
Passing pointer to array of pointers as parameter

Passing pointer to array of pointers as parameter


By : user3914215
Date : March 29 2020, 07:55 AM
I think the issue was by ths following , It appears that the code has some pointer indirection problems. It seems that conflict is meant to be a single dimensional array of uint. If so, then the initial declaration should be:
code :
uint* conflict = NULL;
foo( ... &conflict);
*conflict = (uint*)malloc( ... );
*conflict = conflict_;
passing a pointer to 2D array of pointers in C

passing a pointer to 2D array of pointers in C


By : Mahesh Kumar
Date : March 29 2020, 07:55 AM
Hope this helps you can't, pointers to pointers and pointers to arrays are different things.
code :
void test (char *results[50][50]);
void test (char *results[][50]);
void test (char *(*results)[50]);
void test (size_t n, char *results[n][n]);
void test (size_t n, char *results[][n]);
void test (size_t n, char *(*results)[n]);
Passing pointer of pointers to function, returning both an int and an address (by parameter)

Passing pointer of pointers to function, returning both an int and an address (by parameter)


By : Nolan Gormley
Date : March 29 2020, 07:55 AM
I wish did fix the issue. I've got a function which, as is, works correctly. However the rest of the program has a limitation in that I've preset the size of the array (the space to be allocated). Obviously, this is problematic should an event arise in which I need extra space for that array. So I want to add dynamic allocation of memory into my program. , I can think of the following approaches.
code :
int getNumberOfItems(FILE* fp, int hexi)
{
   int numItems = 0;
   int number;

   char const* format = (hexi == 0) ? "%X" : "%d";
   while (fscanf(fp, format, &number) > 0) {
      ++numItems;
   return numItems;
}

void read(int *array, FILE* fp, int numItems, int hexi)
{
   int i = 0;
   char const* format = (hexi == 0) ? "%X" : "%d";
   for ( i = 0; i < numItems; ++i )
      fscanf(fp, format, &array[i]);
}

int main(int argc, char** argv)
{
   int hexi = 0;
   FILE* fp = fopen(argv[1], "r");

   // if ( fp == NULL )
   // Add error checking code

   // Get the number of items in the file.
   int numItems = getNumberOfItems(fp, hexi);

   // Allocate memory for the items.
   int* array = malloc(sizeof(int)*numItems);

   // Rewind the file before reading the data
   frewind(fp);

   // Read the data.
   read(array, fp, numItems, hexi);

   // Use the data
   // ...
   // ...

   // Dealloate memory
   free(array);
}
int read(int **array, char* fpin, int hexi)
{
   int number;
   int iRead = 0;

   // Local variable for ease of use.
   int* arr = NULL;
   char const* format = (hexi == 0) ? "%X" : "%d";

   FILE *fp = fopen(fpin, "r");
   if (NULL == fp){
      printf("File open error!\n");
      exit(-1);
   }

   while (fscanf(fp, format, &number) > 0) {
      arr = realloc(arr, sizeof(int)*(iRead+1));
      arr[iRead] = number;
      iRead += 1;
   }

   fclose(fp);

   // Return the array in the output argument.
   *array = arr;

   return iRead;
}

int main(int argc, char** argv)
{
   int hexi = 0;
   int* array = NULL;

   // Read the data.
   int numItems = read(&array, argv[1], hexi);

   // Use the data
   // ...
   // ...

   // Dealloate memory
   free(array);
}
Passing pointer on pointers into function

Passing pointer on pointers into function


By : Mukul
Date : March 29 2020, 07:55 AM
around this issue in your example it is correct but the fact is that you are passing this pointer to pointer by value so pass it by pointer:
code :
// initialize it 
char** buffer;

void some_func(char ***buffer) {} // by reference
 some_funct(&buffer);
Related Posts Related Posts :
  • What is the purpose of name mangling in C++?
  • C++ Why the void function is not working eventhough I called it?
  • How the pointer and the pointer's adress can share the same memory adress?
  • error C2220: warning treated as error - no 'object' file generated
  • exception of strcpy function in c++ console program
  • How to access USB barcode scanner data directly from USB port using C/C++ without driver
  • Under which circumstances will std::vector.clear() call a destructor?
  • Template partial specialisation and dependent names
  • best way to share data between c codes
  • C++ ignores if statement conditions
  • How to set the argv[ ] to be case-insensitive in a Win32 Console Application?
  • How to fix error "clang: error: linker (via gcc) command failed with exit code 1 (use -v to see invocation)"?
  • C++ How do I print a .txt file verbatim?
  • Creating two dimensional array of class
  • How do I correctly use COMMTIMEOUTS with OVERLAPPED IO mode reading from a Serial port
  • An assert macro which expands to static_assert when possible?
  • How to write a copyconstructor for a class which has HANDLE as a member in win32 c++ application?
  • C++ saving info such as tree in a file
  • Transforming an expression template tree
  • How to overload an operator with multiple parameters like a + b + c?
  • C++ 11 with Raspberry Pi performances
  • Make a C++ class look like a numpy array using swig
  • Postfix incrementer overloading for nested enumerated types
  • Is there a tidy way of associating metadata with functions in C++
  • QObject::installEventFilter(): Cannot filter events for objects in a different thread
  • LNK2005 error with Zxing C++
  • C++ Doubly Linked List with Pointers: Object of class isn't constructed properly
  • Using a random string generator in c++ constructor
  • What should I use instead of void as one of the alternative types in an variant?
  • C++ return value from multithreads using reference
  • How to connect multiple TCP IP clients to same server port using c++
  • Defaul compiler generates the reference operator (In C++)?
  • Unable to change directory time stamp after using FILE_FLAG_BACKUP_SEMANTICS
  • vector handling displaying output
  • WSAGetLastError returns WSAENOTSOCK - Cause?
  • C++: How to overload pow for user type?
  • C++ using arrays as multidimensional despite initalising it as 1D with pointer
  • How negate std::is_integral for use in tag dispatch?
  • Retrieve serial number from USB memory (Windows environment c++)
  • g++ error: invalid preprocessing directive #INCLUDE
  • C++ What is the std::for_each() function parameter type?
  • C++: Read individual lines from text file, sort words alphabetically
  • Saving 'this' address into a variable
  • c++ command line arguments in ubuntu terminal
  • Convert "Cartesian coordinates" to "polar coordinates with respect to user specified origin"
  • In what order are local scoped objects destructed?
  • How to use SDL_MapRGB with SDL 2.0
  • how compiler and interpreter work in case of array declaration
  • GSL integration behaves strange
  • Cropping an image with OpenCV and C
  • Find the last line in text file and select the first 10 char and print to a new file?
  • Created many CCSprits but when triggering ccTouchBegan gives the last one allways
  • seekp and seekg don't work with fstream
  • Taking input in Sublime Text 3
  • ld: -bind_at_load and -bitcode_bundle (Xcode setting ENABLE_BITCODE=YES) cannot be used together
  • C++ storing #define as std::string would give size as zero compile time
  • How to use static linking with OpenSSL in C/C++
  • What is the difference between a trap, an error, a failure and program abortion?
  • Dynamic members allocation in qt
  • How to reduce object file size when compiling for VxWorks 5.5.1?
  • shadow
    Privacy Policy - Terms - Contact Us © ourworld-yourmove.org