lvalue required as increment operand

x++ is the short form of x = x + 1. However, x here is an array and you cannot modify the address of an array. So is the case with your variable y too. Instead of trying to increment arrays, you can declare an integer i and increment that, then access the i‘th index … Read more

Array of Linked Lists C++

That returns a bunch of unallocated pointers. Your top level array is fine, but its elements are still uninitialized pointers, so when you do this: You invoke undefined behavior. You’re dereferencing an uninitialized pointer. You allocated the array properly, now you need to allocate each pointer, i.e., As an aside, I realize that you’re learning, … Read more

Meaning of *& and **& in C++

That is taking the parameter by reference. So in the first case you are taking a pointer parameter by reference so whatever modification you do to the value of the pointer is reflected outside the function. Second is the simlilar to first one with the only difference being that it is a double pointer. See … Read more

C++ Swapping Pointers

Inside your swap function, you are just changing the direction of pointers, i.e., change the objects the pointer points to (here, specifically it is the address of the objects p and q). the objects pointed by the pointer are not changed at all. You can use std::swap directly. Or code your swap function like the … Read more

clearing a vector of pointers [duplicate]

Yes, the code has a memory leak unless you delete the pointers. If the foo class owns the pointers, it is its responsibility to delete them. You should do this before clearing the vector, otherwise you lose the handle to the memory you need to de-allocate. You could avoid the memory management issue altogether by … Read more

Using pointer to char array, values in that array can be accessed?

When you want to access an element, you have to first dereference your pointer, and then index the element you want (which is also dereferncing). i.e. you need to do: printf(“\nvalue:%c”, (*ptr)[0]); , which is the same as *((*ptr)+0) Note that working with pointer to arrays are not very common in C. instead, one just use a … Read more

Pointer to a string in C?

The same notation is used for pointing at a single character or the first character of a null-terminated string: The values in ptr2 and ptr3 are the same; so are the values in ptr4 and ptr5. If you’re going to treat some data as a string, it is important to make sure it is null terminated, and that you know how much … Read more