标签: pointers

C++ - 在STL向量中操作对象?

我有这样的结构:

struct Rz3DContourNode {
  float x;
  float y;
  float z;
  float nx;
  float ny;
  float nz;
};
Run Code Online (Sandbox Code Playgroud)

我将元素存储在STL向量中,如下所示:

 std::vector < Rz3DContourNode >  nodes;
Run Code Online (Sandbox Code Playgroud)

现在我想更改vector中节点的nx,ny compoent.我尝试如下:

*(&nodes[i].nx)=newNXValue;
*(&nodes[i].ny)=newNYValue;
*(&nodes[i].nz)=newNZValue;
Run Code Online (Sandbox Code Playgroud)

这不起作用.是因为nodes [i]返回对象的副本?

使用指针有什么解决方案吗?

我不能使用指针(Rz3DContourNode*),因为我在OpenGL中使用此向量作为

glNormalPointer(GL_FLOAT,sizeof(Rz3DContourNode), &nodes[0].nx);
Run Code Online (Sandbox Code Playgroud)

编辑 - 对不起.我实际上每次都保留一个QList并获取std :: vector.这就是原因

std::vector<Rz3DContourNode> nodeVector = nodes.toVector().toStdVector();
Run Code Online (Sandbox Code Playgroud)

c++ memory pointers stl vector

0
推荐指数
1
解决办法
433
查看次数

使用<< operator with指向char的指针

有一个运算符重载,<<它解释char*为C风格的字符串.char*但是,如果指向单个字符,如何将其输出到流中?

c++ pointers char

0
推荐指数
1
解决办法
133
查看次数

更好的方法来使用指针?

我正在尝试创建一个程序,显示条形图,*最大数量*可以是40.我有一切正常,但对代码有疑问.是否有更好的方法,因为你可以看到我必须使用以下两次回到原始地址:

    p_bar_length = p_bar_length - size;
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?

#include <iostream>

using namespace std;

const int MAX_SPLATS = 40;

void bar_chart(double values[], int size)
{
    double largest = values[0]; //assign first element to be the largest

    //Find the largest value
    for (int i = 1; i < size; i++)
    {
        if (largest < values[i]) // check to see if there is something larger
        {
            largest = values[i];
        }
    }

    // Find the number of spalts to use
    // with the precent based …
Run Code Online (Sandbox Code Playgroud)

c++ pointers

0
推荐指数
2
解决办法
223
查看次数

C指针void*缓冲区问题

很抱歉用C语言搞乱你们.write()采用void*buff.我需要通过提供所需的数据从main()调用此函数.

但是当我打印它时会抛出错误.帮帮我朋友.代码如下.

void write(int fd, void *buff,int no_of_pages)
{
  // some code that writes buff into a file using system calls
}
Run Code Online (Sandbox Code Playgroud)

现在我需要发送buff我需要的数据.

#include "stdio.h"
#include "malloc.h"
int main()
{
int *x=(int*)malloc(1024);
*(x+2)=3192;

*(x+3)="sindhu";

     printf("\n%d %s",*(x+2),*(x+3));      

     write(2,x,10); //(10=4bytes for int + 6 bytes for char "sindhu");
}
Run Code Online (Sandbox Code Playgroud)

它警告我

warning: format ‘%s’ expects type ‘char *’, but argument 3 has type ‘int’
Run Code Online (Sandbox Code Playgroud)

我该如何删除此警告

c pointers system-calls

0
推荐指数
1
解决办法
1092
查看次数

C中的数组问题

我是一名编程学生,我不明白这段代码有什么问题:

    #include <stdio.h>
    #include <stdlib.h>

    void merge(int a[], int low, int high, int mid){
        int i, j, k, c[50];
        i=low;
        j=mid+1;
        k=low;
        while((i<=mid)&&(j<=high)){
            if(a[i]<a[j]){
                c[k]=a[i];
                k++;
                i++;
            } //end if
        else{
            c[k]=a[j];
            k++;
            j++;
            } //end else
        } //end while
        while(i<=mid){
            c[k]=a[i];
            k++;
            i++;
        } //end while
        while(j<=high){
            c[k]=a[j];
            k++;
            j++;
        } //end while
        for(i=low;i<k;i++){
            a[i]=c[i];
        } //end for
    } //end merge()

    int mergesort(int a[], int low, int high){
        int mid;
        if(low<high){
            mid=(low+high)/2;
            mergesort(a,low,mid);
            mergesort(a,mid+1,high);
            merge(a,low,high,mid);
        } //end if
        return(0); …
Run Code Online (Sandbox Code Playgroud)

c arrays debugging pointers

0
推荐指数
2
解决办法
164
查看次数

(Qt Creator - 基于Cpp的应用程序)Q <Objects> VS使用指针?

这是我的代码:

//MainWindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QtGui>

class MainWindow : public QWidget
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();

private:
    QTextEdit *textEdit;
};


#endif // MAINWINDOW_H
Run Code Online (Sandbox Code Playgroud)
// MainWindow.cpp
#include "mainwindow.h"
#include <QMessageBox>

MainWindow::MainWindow(QWidget *parent)
{
textEdit = new QTextEdit();
}

MainWindow::~MainWindow()
{
    delete textEdit;
}
Run Code Online (Sandbox Code Playgroud)
//main.cpp
#include <QtGui>
#include "mainwindow.h"

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    MainWindow w;
    w.show();

    return a.exec();
}
Run Code Online (Sandbox Code Playgroud)

是否更高效(这里是"Q [Objects] VS使用指针?"问题的一部分):

1)使用我正在做的指针或

2)使用对象(删除*+删除语句)

谢谢!

c++ qt pointers qobject

0
推荐指数
1
解决办法
294
查看次数

不熟悉c ++指针,需要帮助

在线上*binSon[0].add(x);,它给我一个错误,一个表达式必须有一个类类型,我该怎么办?

struct Rectangle
{
    tName Name; //name of the rectangle
    struct Rectangle *binSon[NDIR_1D]; //left and right son
    int Center[NDIR_1D];
    int Length[NDIR_1D];

    void add(Rectangle x){
        if(strcmp(x.Name,Name)<0)
        {
            if(binSon[0]==NULL)
                binSon[0]=&x;
            else
                *binSon[0].add(x);

        }else{
            if(binSon[1]==NULL)
                binSon[1]=&x;
            else
                *binSon[1].add(x);
        }
    }
};
Run Code Online (Sandbox Code Playgroud)

c++ pointers

0
推荐指数
1
解决办法
103
查看次数

c指针指向指向指针的含义是什么意思

我有一个难以理解的代码片段.

char *c;   // c is uni dimensional table ( single row )

char **p ; // p is a two dimensional table 

**p = *c;  // what does this mean ?
Run Code Online (Sandbox Code Playgroud)

当我执行上面的赋值时,是否将c复制为p的第一行?

或者c被复制为p的第一列?

c pointers

0
推荐指数
1
解决办法
456
查看次数

何时返回指针,将指针作为参数传递或者根本不使用它们?

我目前正在尝试C,我很难理解如何在函数中使用指针.我理解当我初始化指针然后取消引用它时发生了什么,但是,当我必须在函数中使用它们时,我有点困惑,如下所示:

我这里有三个功能,但我不确切知道何时使用哪个功能.我还是比较新的C.

int returnSomething(int a, int b)
int returnSomething(int *ptrA, int *ptrB)
int* returnSomething(int *ptrA, int *ptrB);
Run Code Online (Sandbox Code Playgroud)

编辑:

三者之间有很大的不同吗?

c pointers

0
推荐指数
1
解决办法
139
查看次数

如何在C++中使用指针的方法?

我有一个代码,我使用指向我所做的类的指针.举个例子,假设我有一个Person方法,每个Person都有一个名字.现在让我说我用一个像指针这样的人

Person& * person_;
Run Code Online (Sandbox Code Playgroud)

现在让我说我正在尝试使用我拥有的指针获取该人的名字.如果我做一些简单的事情

person_.getName()
Run Code Online (Sandbox Code Playgroud)

它将返回一个错误,说它是非类型的.

我的问题是:如果我只有指针可以使用,我该如何使用它所指向的类的方法?

c++ methods pointers

0
推荐指数
1
解决办法
104
查看次数

标签 统计

pointers ×10

c++ ×6

c ×4

arrays ×1

char ×1

debugging ×1

memory ×1

methods ×1

qobject ×1

qt ×1

stl ×1

system-calls ×1

vector ×1