Skip to main content

Featured

C Program to Check Prime Number Using Efficient Logic

  Introduction A prime number is a number that has exactly two distinct positive divisors: 1 and itself. In this program, we check whether a given number is prime or not using a simple and efficient logic. This type of program is commonly used in mathematics, competitive programming, and basic algorithm learning for beginners in C programming. Problem Statement The task is to write a C program that determines whether a given integer is a prime number or not. The program takes a single integer input from the user and analyzes its divisibility. If the number has no divisors other than 1 and itself, it should be identified as a prime number; otherwise, it is not prime. This problem is important in number theory and has practical relevance in areas such as cryptography, data validation, and algorithm design.  Algorithm / Logic Explanation To check whether a number is prime, we need to verify that it is not divisible by any number other than 1 and itself. The algorithm follows a si...

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

πŸŒ™