I have two methods:
// Apenas define um vetor de 4 posições e retorna ele
int *verticesFromFace(int v1, int v2, int v3, int v4) {
int vertices[4] = {v1, v2, v3, v4};
return &(vertices);
}
// pega um cubo e uma face dele, retorna um vetor de vertices daquela face
Vertice *getPointsFromFace(Cube c, Face f) {
Vertice points[4];
int i;
for (i = 0; i < FACE_VERTICES; i++)
points[i] = c.vertices[f.vertices[i] - 1];
return &(points);
}
Example usage:
// pega uma face do cubo, armazena nela o vetor de vértices (usando aquele método) e também as cores daquela face (3 últimos parâmetros)
createFace(c.faces[0], verticesFromFace(1, 2, 3, 4), 1, 0, 0);
// Um vetor de vertices, quando chamo o metodo com o cubo e uma face do cubo
Vertice *points = getPointsFromFace(c, c.faces[i]);
GCC returns the error:
warning: function returns address of local variable [-Wreturn-local-addr] return & (points [0]);
Although it is a warning , the code does not work because the local variable is not returned. How can I fix this?
Q.: This &()
in return was an attempt I made when I saw a post in Stack Overflow English