无法初始化类型的变量-链接错误

野兽黄油

我从另一个项目复制了一些代码,并且在以前的项目中工作正常,但是在新项目中却出现了链接错误:

OpengLWaveFrontCommon.h:50:22:错误:无法使用'void *'类型的右值初始化'VertexTextureIndex *'类型的变量VertexTextureIndex * ret = malloc(sizeof(VertexTextureIndex));

此文件(OpengLWaveFrontCommon.h)是openGL iPhone项目的一部分:Wavefront OBJ Loader。https://github.com/jlamarche/iOS-OpenGLES-Stuff

我应该制作一些特殊的标志或东西,因为它是C结构的?

#import <OpenGLES/EAGL.h>
#import <OpenGLES/ES1/gl.h>
#import <OpenGLES/ES1/glext.h>

typedef struct {
    GLfloat red;
    GLfloat green;
    GLfloat blue;
    GLfloat alpha;
} Color3D;

static inline Color3D Color3DMake(CGFloat inRed, CGFloat inGreen, CGFloat inBlue, CGFloat inAlpha)
{
    Color3D ret;
    ret.red = inRed;
    ret.green = inGreen;
    ret.blue = inBlue;
    ret.alpha = inAlpha;
    return ret;
}


#pragma mark -
#pragma mark Vertex3D
#pragma mark -
typedef struct {
    GLfloat x;
    GLfloat y;
    GLfloat z;
} Vertex3D;

typedef struct {
    GLuint  originalVertex;
    GLuint  textureCoords;
    GLuint  actualVertex;
    void    *greater;
    void    *lesser;

} VertexTextureIndex;


static inline VertexTextureIndex * VertexTextureIndexMake (GLuint inVertex, GLuint inTextureCoords, GLuint inActualVertex)
{
    VertexTextureIndex *ret = malloc(sizeof(VertexTextureIndex));
    ret->originalVertex = inVertex;
    ret->textureCoords = inTextureCoords;
    ret->actualVertex = inActualVertex;
    ret->greater = NULL;
    ret->lesser = NULL;
    return ret;
}
Midhun MP

问题原因:

malloc()返回type的指针void *,您需要将其类型转换为相应的data-type。

malloc返回一个指向已分配空间的空指针,如果没有足够的可用内存,则返回NULL。若要返回指向非void类型的指针,请对返回值使用类型强制转换。返回值所指向的存储空间可以保证适当对齐,以存储对齐要求小于或等于基本对齐要求的任何类型的对象。

参考malloc()

解决该问题:

VertexTextureIndex *ret = (VertexTextureIndex *)malloc(sizeof(VertexTextureIndex));

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

“通道”类型的字段给出错误“无法默认初始化具有通用类型的变量”

如何初始化Map类型变量以解决NullPointerException错误?

错误:无法推断“自动”类型(需要初始化程序)

变量初始化错误

错误:无法使用“布尔”类型的右值初始化“类型*”类型的返回对象

错误:无法使用初始化程序列表初始化非聚合类型“ vector <int>”

错误:无法使用初始化程序列表初始化非聚合类型的vector <int>

访问我的 NSMutableArray 时,我收到一条错误消息,例如“无法使用类型为 'id' 的右值来初始化类型为 'int' 的变量”

错误无法初始化右值类型为'int'的类型为'int *'的参数

变量可能尚未初始化错误

Java未初始化的变量错误

初始化对象变量错误

Java初始化变量错误

初始化Java的变量错误

枚举变量初始化导致错误

变量可能尚未初始化?错误

BannerAd 变量未初始化错误

Java 的“可能未初始化变量”是什么类型的错误/异常?

使用未初始化的变量时会发生什么类型的错误?

内部错误Ese无法初始化

Gitflow错误无法初始化

如果变量在声明时初始化并链接到NOLOAD节,是否有办法引发链接时间错误?

iOS Swift Decodable:错误:无法为没有参数的类型调用初始化程序

无法使用最新的xcode的左值初始化类型为参数的参数引发错误

SKNode子类生成错误:无参数时无法调用类型“ X”的初始化程序

无法初始化QMainWindow类型的参数:ui-> setupUi(此)错误

如何修复“无法为类型'MBMovingGround调用初始化程序?' 没有参数”错误迅速

“显然”无法访问的块中的“可能未初始化变量的借用”错误

编译错误:(1)上的Dummy无法具有初始化程序。什么是虚拟变量?