这是我的代码,我正在尝试在IOS设备上获得OSVersion。并且该警告在行返回ret处; ---->指针转换不兼容的整数,从结果类型为“ char *”的函数返回“ char”;用&取地址。当我将ret更改为&ret时,它仍然不起作用。
char *getOSVersion() {
char str[256];
size_t size = sizeof(str);
char ret = sysctlbyname("kern.osrelease", str, &size, NULL, 0);
return ret;
}
似乎sysctlbyname返回整数值,并且您尝试从函数中返回本地创建的char指针。我认为您应该将char指针作为参数并在函数体中分配它,或者应该按值返回char。尝试以这种方式使用;
char getOSVersion() {
char str[256];
size_t size = sizeof(str);
char ret = (char)sysctlbyname("kern.osrelease", str, &size, NULL, 0);
return ret;
}