我正在cmake中的一个网格系统上工作,我想用一个结构来自动创建抓地力,这里是我正在使用的一个例子
struct Vertex {
float xyzw[4];
};此结构将用于保存顶点。
Vertex verts[] = {}目前,我的网格系统就是这样构建的。
Vertex L1 = { 1, 0, 0, 1 };
Vertex L2 = { -1, 0, 0, 1 };L1和L2将以这样的方式进入我的verts
verts[] = {L1, L2}这会创造出一条线。现在,我想不出用for循环自动化这个过程的方法了。任何建议都会很好
发布于 2022-10-04 11:22:42
您可以使用int指针,而不是使用数组,这些指针基本上是数组。我想你可以这样做:
#include <iostream>
#include <cstdlib>
using namespace std;
int main(){
int verts1[] = { 1, 0, 0, 1 };
int verts2[] = { -1, 0, 0, 1 };
int** vertsOut;
vertsOut = (int**) malloc(sizeof(int*) * 4); // Initialize the out pointer to pointers, with 8 vertices
for(int i = 0; i < 4; i++) {
vertsOut[i] = (int*)malloc(sizeof(int) * 2); // Initialize each individual vertex
}
// Copy over the vertices
for(int i = 0; i < 4; i++) {
vertsOut[i][0] = verts1[i];
}
for(int i = 0; i < 4; i++) {
vertsOut[i][1] = verts2[i];
}
for(int i = 0; i < 4; i++) {
cout << "x: " << vertsOut[i][0] << " y: " << vertsOut[i][1] << endl;
}
}https://stackoverflow.com/questions/73942632
复制相似问题