टीएल;डीआर

  • समस्या: सीटीसीआई समस्या १२.१० का तकनीकी विवरण।
  • दृष्टिकोण: सीटीसीआई problem १२.१०: implement aligned_malloc and aligned_free in C for memory alignment requirements.
  • जटिलता: इष्टतम समय और मेमोरी संतुलन।

यह लेख सीटीसीआई समस्या १२.१० का एक स्पष्ट विवरण प्रदान करता है।

१. संदर्भ और समस्या कथन

सीटीसीआई problem १२.१०: implement aligned_malloc and aligned_free in C for memory alignment requirements.

२. कोड और कार्यान्वयन

void* aligned_malloc(size_t bytes, size_t alignment) {
    void* p1;
    void** p2;
    int offset = alignment - 1 + sizeof(void*);
    if ((p1 = (void*)malloc(bytes + offset)) == NULL) return NULL;
    p2 = (void**)(((size_t)(p1) + offset) & ~(alignment - 1));
    p2[-1] = p1;
    return p2;
}
void aligned_free(void* p) {
    free(((void**)p)[-1]);
}

३. सारांश और एज केसेस

हमेशा सीमांत स्थितियों और शून्य इनपुट की जांच करें।