Skip to main content

Featured

Solve LeetCode 3 Longest Substring Without Repeating Characters in C++ using the sliding window

Longest Substring Without Repeating Characters in C++ LeetCode 3 · sliding window · last index array Table of Contents Problem Statement Approach 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 Conclusion Problem Statement 3. Longest Substring Without Repeating Characters Given a string s , find the length of the longest substring that contains no repeating characters. A substring is a continuous part of the string, so "pwke" is a subsequence of "pwwkew" but not a substring. Approach We use a sliding window . The window is the part of the string between start and end , and we always keep it free of repeated characters. An array lastIndex of size 128 remembers the most recent position of every ASCII ...

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

πŸŒ™