基本问题..不得不问。任何帮助将不胜感激。
问:为什么我不能像这样取消指向多维数组的指针:
int arr [2][2] = { {1, 2} , {3, 4} };
printf("%d ", *arr);
Run Code Online (Sandbox Code Playgroud) 我正在将一些代码从OpenGL移植到ES版本.我正在使用glDrawArrays()来绘制一个三角形glVertexPointer()
.但是,它不会在屏幕上绘制.完整的代码是:
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void display(void)
{
glEnableClientState (GL_COLOR_ARRAY);
glClear (GL_COLOR_BUFFER_BIT);
glColor4f (0.0, 0.0, 1.0, 1.0);
glLoadIdentity ();
glTranslatef(0, 0, -20);
const GLfloat triVertices[] = {
0.0f, 1.0f, 0.0f,
-1.0f, -1.0f, 0.0f,
1.0f, -1.0f, 0.0f
};
glVertexPointer(3, GL_FLOAT, 0, triVertices);
glDrawArrays(GL_TRIANGLES, 0, 3);
glDisableClientState(GL_VERTEX_ARRAY);
glFlush ();
}
void reshape (int w, int h)
{
glViewport (0, 0, (GLsizei) w, (GLsizei) h);
glMatrixMode (GL_PROJECTION);
glLoadIdentity ();
glFrustum (-1.0, 1.0, -1.0, 1.0, …
Run Code Online (Sandbox Code Playgroud) 如果我正在读取文件:
fptr = fopen(read_path, "rb");
fread(contents, size_in_bytes, count, fptr);
Run Code Online (Sandbox Code Playgroud)
假设我想要读取4个字节,然后跳过4个字节,然后读取4个,依此类推.我怎样才能做到这一点?具体来说,我将如何操纵/推进fptr
?
Line Line::operator =(Line ln) {
cout << "Assignment operator\n";
Line temp;
temp.ptr = new int;
*temp.ptr = *(ln.ptr);
return temp;
}
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,执行以下语句时不会调用复制构造函数:
return temp;
Run Code Online (Sandbox Code Playgroud)
由于返回是按值,为什么不调用复制构造函数?
谢谢
这是一个基本问题..但不得不问.对于这样的程序,如果用例是123 ^ Z,程序不会终止,即使我在末尾放置了一个EOF(Ctrl + Z).为什么会这样?只有当我在CR之后放置一个EOF它才有效.任何anwers将不胜感激.谢谢.
#include < stdio.h>
void main()
{
int i, nc;
nc = 0;
i = getchar();
while (i != EOF) {
nc = nc + 1;
i = getchar();
}
printf("Number of characters in file = %d\n", nc);
}
Run Code Online (Sandbox Code Playgroud) 我正在Visual Studio中编译这个OpenGL程序.在阅读了大量文章之后,我已经正确地进行了设置.我已将正确的库添加到链接器的其他依赖项中.但是我收到此错误:
错误LNK2019:函数_ _tmainCRTStartup中引用的未解析的外部符号WinMain @ 16
我正在编译的代码是:
#include <windows.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>
void init(void)
{
glClearColor (0.0, 0.0, 0.0, 0.0);
glShadeModel (GL_FLAT);
}
void display(void)
{
glClear (GL_COLOR_BUFFER_BIT);
glColor3f (1.0, 1.0, 1.0);
glLoadIdentity (); /* clear the matrix */
/* viewing transformation */
gluLookAt (0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0);
glScalef (1.0, 2.0, 1.0); /* modeling transformation */
glutWireCube (1.0);
glFlush ();
}
void reshape (int w, int h)
{ …
Run Code Online (Sandbox Code Playgroud) glTranslate()的参数指定原点转换的单位数量.因此,有可能超越显示器.有没有办法规范我们移动的数量,以便我们不超出绘图区域?