Skip to main content

Featured

Merge Sort in C++

  Merge Sort in C++ Introduction Merge Sort is a popular sorting algorithm that follows the Divide and Conquer approach. It divides an array into smaller subarrays, recursively sorts those subarrays, and finally merges the sorted subarrays to produce a completely sorted array. In this tutorial, we will learn how to implement Merge Sort in C++ . The program divides the array into two halves using the mid index, recursively sorts both halves, and then combines them using the merge() function. Merge Sort has a time complexity of O(n log n) in the best, average, and worst cases. Table of Contents Algorithm C++ Program Input Sample Output Output Explanation Dry Run Flow of Execution Time Complexity Space Complexity Applications Key Points Interview Questions Frequently Asked Questions Keywords Conclusion Algorithm Start the program. Read the size of the array. Read the array elements from the user. Call the mer...

Void Pointer Examples in C

Void Pointer Examples in C

πŸ“˜ What is a Void Pointer in C?

A void pointer in C is a special type of pointer that can store the address of any data type. It is also known as a generic pointer. However, before dereferencing a void pointer, you must explicitly typecast it to the correct type.

πŸ’‘ Example 1: Basic Void Pointer Usage

#include<stdio.h>

int main() {
    void *ptr;
    int a = 10;
    ptr = &a;
    printf("%d", *(int*)ptr);
}

πŸ’‘ Example 2: Void Pointer with Multiple Data Types

#include<stdio.h>

int main() {
    int a = 5;
    float b = 3.14;
    char c = 'X';

    void *ptr;

    ptr = &a;
    printf("Integer: %d\\n", *(int*)ptr);

    ptr = &b;
    printf("Float: %.2f\\n", *(float*)ptr);

    ptr = &c;
    printf("Char: %c\\n", *(char*)ptr);

    return 0;
}

πŸ’‘ Example 3: malloc and Void Pointer

#include<stdio.h>
#include<stdlib.h>

int main() {
    void *ptr = malloc(sizeof(int));

    if (ptr != NULL) {
        *(int*)ptr = 42;
        printf("Value: %d", *(int*)ptr);
        free(ptr);
    }

    return 0;
}

πŸ’‘ Example 4: Generic Function using void*

#include<stdio.h>

void printValue(void *ptr, char type) {
    if (type == 'i')
        printf("Integer: %d\\n", *(int*)ptr);
    else if (type == 'f')
        printf("Float: %.2f\\n", *(float*)ptr);
    else if (type == 'c')
        printf("Char: %c\\n", *(char*)ptr);
}

int main() {
    int x = 10;
    float y = 5.5;
    char z = 'A';

    printValue(&x, 'i');
    printValue(&y, 'f');
    printValue(&z, 'c');

    return 0;
}

πŸ’‘ Example 5: Array of Void Pointers

#include<stdio.h>

int main() {
    int a = 10;
    float b = 3.14;
    char c = 'Z';

    void *arr[3];

    arr[0] = &a;
    arr[1] = &b;
    arr[2] = &c;

    printf("Integer: %d\\n", *(int*)arr[0]);
    printf("Float: %.2f\\n", *(float*)arr[1]);
    printf("Char: %c\\n", *(char*)arr[2]);

    return 0;
}

πŸ’‘ Example 6: Generic Swap Function Using void*

#include<stdio.h>
#include<string.h>

void swap(void *a, void *b, size_t size) {
    char temp[size];
    memcpy(temp, a, size);
    memcpy(a, b, size);
    memcpy(b, temp, size);
}

int main() {
    int x = 10, y = 20;
    swap(&x, &y, sizeof(int));
    printf("x = %d, y = %d\\n", x, y);

    float f1 = 1.1, f2 = 2.2;
    swap(&f1, &f2, sizeof(float));
    printf("f1 = %.1f, f2 = %.1f\\n", f1, f2);

    return 0;
}

πŸ“Œ Hashtags:

#VoidPointer #CProgramming #PointerBasics #GenericPointer #malloc #FunctionPointers #SwapFunction #ArrayOfPointers #TypeCastingInC #AdvancedC

πŸ”‘ Keywords:

void pointer in C, generic pointer in C, pointer typecasting, C pointer examples, malloc with void pointer, function using void pointer, array of void pointers, generic swap function C, dynamic memory C, void pointer real time example

Comments

Popular Posts

πŸŒ™