Essential C++ Pointer and Array Manipulation Techniques
C++ Pointer and Array Operations
This collection demonstrates fundamental C++ techniques for handling pointers, arrays, and memory management.
Core Functions
void squareByPointer(int* n) {
*n = (*n) * (*n);
}
void capitalizeFirst(char* word) {
word[0] = toupper(word[0]);
}
void fillWithSquares(int* arr, int size) {
for (int i = 0; i < size; i++)
arr[i] = i * i;
}
int sumArray(const int* arr, int size) {
int sum = 0;
for (int i = 0; i < size; i++)
sum += arr[i];
return sum;
}
void swap(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
int* makeFilledArray(int size, int val) {
int* arr = new int[size];
for (int i = 0; i < size; i++)
arr[i] = val;
return arr;
}
int* maxPointer(int* a, int* b) {
return (*a > *b) ? a : b;
}
void reverseArray(int* arr, int size) {
for (int i = 0; i < size / 2; i++)
swap(arr[i], arr[size - 1 - i]);
}
void printCharArray(const char* arr) {
for (int i = 0; arr[i] != '\0'; i++)
cout << arr[i];
cout << '\n';
}
void zeroOddIndices(int* arr, int size) {
for (int i = 1; i < size; i += 2)
arr[i] = 0;
}Implementation Example
The following main function executes the logic defined above:
int main() {
// 1. squareByPointer
int x = 5;
squareByPointer(&x);
cout << "Square of 5: " << x << endl; // 25
// 2. capitalizeFirst
char word[] = "hello";
capitalizeFirst(word);
cout << "Capitalized: " << word << endl; // Hello
// 3. fillWithSquares
int squares[5];
fillWithSquares(squares, 5);
cout << "Squares: ";
for (int i = 0; i < 5; ++i) cout << squares[i] << " ";
cout << endl; // 0 1 4 9 16
// 4. sumArray
int sum = sumArray(squares, 5);
cout << "Sum of squares: " << sum << endl; // 30
// 5. swap
int a = 3, b = 7;
swap(a, b);
cout << "Swapped: " << a << ", " << b << endl; // 7, 3
// 6. makeFilledArray
int* filled = makeFilledArray(4, 9);
cout << "Filled array: ";
for (int i = 0; i < 4; ++i) cout << filled[i] << " ";
cout << endl; // 9 9 9 9
delete[] filled; // clean up
filled = nullptr;
// 7. maxPointer
int p = 10, q = 20;
int* maxPtr = maxPointer(&p, &q);
cout << "Max value: " << *maxPtr << endl; // 20
// 8. reverseArray
int nums[] = {1, 2, 3, 4, 5};
reverseArray(nums, 5);
cout << "Reversed: ";
for (int i = 0; i < 5; ++i) cout << nums[i] << " ";
cout << endl; // 5 4 3 2 1
// 9. printCharArray
const char* text = "Print this!";
cout << "Char array: ";
printCharArray(text); // Print this!
// 10. zeroOddIndices
int testArr[] = {10, 11, 12, 13, 14, 15};
zeroOddIndices(testArr, 6);
cout << "Zero odd indices: ";
for (int i = 0; i < 6; ++i) cout << testArr[i] << " ";
cout << endl; // 10 0 12 0 14 0
}
with a size of 3.16 KB