辽宁省城乡与住房建设厅网站,龙岗营销型网站建设,做视频网站需要多少上传,查看网站是否被k在头文件中定义void * realloc(void * ptr#xff0c;size_t new_size);重新分配给定的内存区域。它必须预先分配malloc()#xff0c;calloc()或realloc()尚未释放与free或呼叫realloc。否则#xff0c;结果是不确定的。重新分配由以下两者之一完成#xff1a;a)ptr如有可能…在头文件中定义void * realloc(void * ptrsize_t new_size);重新分配给定的内存区域。它必须预先分配malloc()calloc()或realloc()尚未释放与free或呼叫realloc。否则结果是不确定的。重新分配由以下两者之一完成a)ptr如有可能扩大或缩小指定的现有地区。该地区的内容保持不变直至新旧尺寸中的较小者。如果区域展开则数组新部分的内容未定义。b)分配一个大小为new_size字节的新内存块复制大小等于新旧大小较小者的内存区域并释放旧块。如果没有足够的内存则旧的内存块不会被释放并返回空指针。如果ptr是NULL则行为与调用malloc(new_size)相同。如果new_size为零则行为是实现定义的(可能会返回空指针(在这种情况下可能会释放或不释放旧的内存块)或者可能会返回一些可能不用于访问存储的非空指针)。realloc是线程安全的它的行为就像访问通过其参数可见的内存位置而不是任何静态存储。先前调用free或realloc来释放内存区域的同步 - 调用任何分配函数包括分配相同或部分同一区域内存的realloc。在通过释放函数访问内存之后以及在通过重新分配访问内存之前会发生此同步。所有分配和解除分配功能在内存的每个特定区域都有一个总的顺序。(自C11以来)参数PTR-指向要重新分配的内存区域的指针new_size-数组的新大小返回值成功时将指针返回到新分配的内存的开始位置。返回的指针必须用free()或来解除分配realloc()。原始指针ptr无效并且对它的任何访问都是未定义的行为(即使重新分配就地)。失败时返回一个空指针。原始指针ptr仍然有效可能需要使用free()or 取消分配realloc()。注释从C11 DR 400开始不支持零大小。最初(在C89中)增加了对零大小的支持以适应如下代码。OBJ *p calloc(0, sizeof(OBJ)); // zero-length placeholder...while(1) {p realloc(p, c * sizeof(OBJ)); // reallocations until size settles ... // code that may change c or break out of loop}例#include #include int main(void){int *pa malloc(10 * sizeof *pa); // allocate an array of 10 int if(pa) { printf(%zu bytes allocated. Storing ints: , 10*sizeof(int)); for(int n 0; n int *pb realloc(pa, 1000000 * sizeof *pb); // reallocate array to a larger size if(pb) { printf(\n%zu bytes allocated, first 10 ints are: , 1000000*sizeof(int)); for(int n 0; n 输出40 bytes allocated. Storing ints: 0 1 2 3 4 5 6 7 8 94000000 bytes allocated, first 10 ints are: 0 1 2 3 4 5 6 7 8 9参考C11标准(ISO / IEC 98992011)7.22.3.5 realloc函数(p349)C99标准(ISO / IEC 98991999)7.20.3.4 realloc函数(p314)C89 / C90标准(ISO / IEC 98991990)4.10.3.4 realloc函数