标签: pointers

指针传染媒介对另一个传染媒介的元素的而不是克隆传染媒介

我想有一个向量z,并能够访问它z[i]*pz[i],其中*pz[i]指出z[i].所以有一组值,但有两种方法可以访问它.

这是我的代码:

std::vector<double> z;
std::vector<double*> pz;

for (int i = 0; i < 5; i++) {
  z.push_back(7+0.01*i);
  std::cout << i << "  z = " << z << std::endl;
  pz.push_back(&z.back());
  std::cout << i << "  pz = " << pz << std::endl;
  std::cout << i << "  *pz = " ;
  for (int j = 0; j < pz.size(); j++) {
    std::cout << "  " << *pz[j];
  }
  std::cout << std::endl;
} …
Run Code Online (Sandbox Code Playgroud)

c++ pointers stdvector

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

一段C代码,可能与内存有关

几天前我踩了下面的代码,我不知道它到底做了什么.

int (*func) ();
func = (int (*) () ) some_array_here;
(int) (*func) ();
Run Code Online (Sandbox Code Playgroud)

第一行看起来像一个整数指针,但()s错误我.第二行看起来像演员和第三行,我真的不知道.你们能帮忙吗?谢谢

c pointers function

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

参数中的指针和引用

我在几个树代码中看到,树类的一个函数同时具有*和&与节点,例如在BST中插入一个节点,函数是这样的

insertnode(node * &t,string value)
{
t = new node; t-> val = value 
// code to find right place in BST
}
Run Code Online (Sandbox Code Playgroud)

我想知道为什么我们通常引用指针,特别是这种情况.还请提及是否还有其他任何情况,谢谢

而不是发布另一个问题.有人也可以指出对象类的使用吗?我的意思是使用对象类的实例它是否分配了所有子类的所有内存?即int float等.

c c++ pointers pass-by-reference

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

如何从特定的内存位置获取结构?

我将结构的内存位置存储为整数.如何检索存储在该位置的结构并在该位置创建指向该对象的指针?

Structure object;
int memLocation = &object;

Structure objectCopy = (objectAtLocation) memLocation;
Structure *objectPointer = (pointerToLocation) memLocation;
Run Code Online (Sandbox Code Playgroud)

c memory pointers

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

C++干净的指针算术

什么是在C++中执行指针运算最干净的方法?我正在尝试将n字节添加到地址.

int *foo;
foo = static_cast<int*> (static_cast<unsigned int>(foo) + sizeof(T))
Run Code Online (Sandbox Code Playgroud)

之后你可以重铸并以不同的方式使用foo

char* somestr = reinterpret_cast<char*>(foo)
Run Code Online (Sandbox Code Playgroud)

这够好吗?现在我理解指针实现dosent保证所有指针(char*,int*)都实现相同的大小.所以不确定是否int*(应该是foo*)并且使用unsigned int进行数学运算是最干净的解决方案.此外,它必须兼容32位和64位.

没关系为什么我这样做.虽然不是那么不寻常.当您使用动态解释为不同类型的数据流(或字节池)时,您将遇到此问题.

c++ linux pointers

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

在C中初始化结构 - 避免分段错误

我是C的新手,对初始化结构有疑问.我正在使用一个我没有创建的结构,所以我不知道它里面是什么.因此,我没有初始化它,但编译器抱怨.所以我把它设置为NULL但是我遇到了分段错误.然后我查找了如何将所有内容设置为0并且它说将其设置为等于{0}.这也给了我一个分段错误.因为我知道我调用的函数是正确的,并且我传递的数组的大小正确,我几乎可以肯定它与我初始化结构的方式有关.初始化是

struct aes_ctx *aes_struct = {0}
Run Code Online (Sandbox Code Playgroud)

该函数的标题是

void aes_setkey(aes_ctx *aes, const void *key, u_int len);
Run Code Online (Sandbox Code Playgroud)

我称之为的方式是

aes_setkey(aes_struct, aes, CCA_STRENGTH);
Run Code Online (Sandbox Code Playgroud)

其中aes是大小为16的缓冲区,CCA_STRENGTH是16的常量int.

总结一下这个问题,我认为我初始化结构的方式导致它在以后无法使用.任何可以给我的帮助将非常感激!谢谢!

c struct pointers initialization

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

如何删除这个2维指针数组?制作析构函数

malla = new Celula**[n + 2];  
for(int i = 0 ; i < n + 2 ; ++i){  
     malla[i] = new Celula*[m + 2];
     for(int j = 0 ; j < m + 2 ; ++j){
         malla[i][j] = new Celula[m];
     }
}
Run Code Online (Sandbox Code Playgroud)

我正在制作这段代码并且我像这样分配内存(我想要一个n*m指向Celula的指针数组,好吗?现在我需要一个析构函数.

现在我不知道如何访问此数组中的对象,并且:

malla[i][j].setestado(true);
Run Code Online (Sandbox Code Playgroud)

不起作用.

c++ arrays pointers delete-operator

1
推荐指数
1
解决办法
2万
查看次数

检查和修改C中的内存地址

我想基本上做以下(这可能是危险的,不是什么)只是为了它:

int main() {

    int x = 0x00ff00ff;

    printf("Value at addr x: %x\n",*x);


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

基本上看一下我机器中某个地址的内容.也许写信给它.我猜我不允许做后者.

我得到的错误是error: invalid type argument of 'unary *'.

有没有办法做到这一点?

c pointers memory-address

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

包含派生对象的QPointer与基类不匹配

对于这个奇怪的标题感到抱歉,如果你能想到一个,请随时提出更好的标题.

这是我的问题.

我有一个看起来像这样的结构:

QObject - > MyBase - > MyDerived

然后我有一个函数将任何派生类型作为QPointer;

void function(QPointer<MyBase> base) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

问题是现在我无法QPointer<MyDerived>进入这个函数,如果我使用标准指针,我会这样做.我是否必须转换此对象以使其适合该功能?或者我应该只使用普通指针?

此外,当您分配失败的对象时,是否有人知道标准行为?你是否应该总是在try-block中执行此操作或将其包装在某个内容中以检查它是否为null?我阅读了Qt文档,他们说如果分配失败,他们的大多数类都会返回一个空值.该语句何时为true,如果我不想使用try-catch,我该怎么办?

c++ qt pointers qpointer

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

将指针表示为字符串,反之亦然

我正在尝试使用MPI编写一个程序,我有一个问题可以帮助我很多.在MPI中是否可以以任何方式向另一个进程发送指针?我想要的只是发送指针,而不是将内存从一个进程复制到另一个进程.

如果不适用,可以将指针表示为字符串,然后发送它,以便接收进程可以再次将其转换为指针并访问指向的内存?

提前致谢.

c pointers mpi

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