如果您已包含stdlib.h但仍然收到“error: call to undeclared function 'reallocarray'”错误,则可能是您的编译器版本太旧而不支持reallocarray函数。reallocarray函数是在C11标准中引入的,因此您需要使用支持C11标准的编译器。

您可以尝试使用新的编译器或手动实现reallocarray函数。下面是一个手动实现reallocarray函数的示例代码:

#include <stdlib.h>
#include <stddef.h>

void *reallocarray(void *ptr, size_t nmemb, size_t size) {
    if ((nmemb == 0 || size == 0) && ptr != NULL) {
        free(ptr);
        return NULL;
    }
    if (nmemb > SIZE_MAX / size) {
        errno = ENOMEM;
        return NULL;
    }
    return realloc(ptr, nmemb * size);
}

请注意,此代码仅适用于Linux和MacOS操作系统。如果您使用的是Windows操作系统,则可能需要进行更改。

修复error call to undeclared function reallocarray; 我已包含stdlibh

原文地址: https://www.cveoy.top/t/topic/bx6d 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录