C ++:使用int指针指向在函数内部创建的向量

StoneCodeStawny

我仍在完善此处发布的技巧,请多多包涵,我将编辑和修复建议的任何内容!

我有一个家庭作业,需要我创建操纵向量的函数。“捕获”是传递给该函数的所有数据都是通过对该结构的引用传递的:

struct Vector { // this struct must stay as is
    int sze = 0; // "size" took out i for compatability
    int capacity = 0;
    int * data = nullptr ;
}a,b,c;

void construct_vector ( Vector& v, int size= 0, int initVal= 0);

construct_vector()猜到的问题是我必须构造的函数,该函数必须构造一个向量并用于int* data指向堆上的向量?我对最后一部分不满意)。我只知道我必须使用int指针指向在construct函数中创建的向量,并且无法终生搞清楚该如何做。

我正在尝试的示例:

void construct_vector ( Vector &v, int size, int initVal){

    std::vector<int> t(size,initVal);
    *v.data = &t ; // ERROR: Assigning to 'int' from incompatible type 'std::vector<int> *'
    v.capacity = size; //
    v.sze = size;

    for (int i=0; i < t.size(); i++){
        /* I originally tried to implement a
        dynamic int pointer here but I cannot change int* data
        to int*data[sze] within the struct*/
    }
}

int * data必须指向向量的原因是因为数据是通过引用struct member传递给后续函数的v

void destroy_vector ( Vector & v );
void copy_data ( Vector & v );

编辑:我的问题是我误解了分配的目标,但我认为我收到的答案确实可以帮助人们理解动态内存以及应如何在函数中使用动态内存。因此,我将保留一切!

遗忘

您在这里有两个问题:

std::vector<int> t(size,initVal); 
*v.data = &t ; // ERROR: Assigning to 'int' from

首先,*v.data&t是不同的类型,一种是int,另一种是一个指向一个vectorint

您可以使用它进行编译(但是您不应该,请参阅第二个问题)

v.data = t.data();

另一个问题是vector该功能是本地的。一旦函数返回,您的指针就会悬空。

因此,针对您的问题的正确解决方案是使用动态数组:

v.data = new int[size];

使用完后,不要忘记delete[]在结构的析构函数中使用它:

delete [] data;

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何创建指向函数C ++的指针的线程

来自分类Dev

如何创建指向函数C ++的指针的线程

来自分类Dev

C++ 使用指向指针向量的指针有什么好处?

来自分类Dev

指向具有多个对象的成员函数的指针的向量C ++

来自分类Dev

在C ++中使用指向内部类对象的指针作为外部类构造函数参数

来自分类Dev

C ++在函数中使用指向结构的指针

来自分类Dev

在C语言中,使用指向结构的指针来调用结构内部指向的函数会导致段错误

来自分类Dev

指向对象的指针向量C ++

来自分类Dev

指向int的指针的c ++指针

来自分类Dev

C ++外部函数,带有指向函数作为参数的指针,在带有成员函数的类内部使用

来自分类Dev

如何在C ++中使用指向结构的指针向量?

来自分类Dev

创建指针的C ++向量

来自分类Dev

如何在C#中创建“指向函数指针的typedef”?

来自分类Dev

C++ 在地图内创建函数指针向量

来自分类Dev

指向C ++中函数的指针

来自分类Dev

指向函数内部指针的指针的c malloc未提供正确的大小

来自分类Dev

指向函数内部指针的指针的c malloc未提供正确的大小

来自分类Dev

指向使用Rcpp对象创建的C ++类的指针

来自分类Dev

使用指向结构C ++的指针创建动态分配的数组

来自分类Dev

从C ++类返回指向向量的指针

来自分类Dev

C - 使用指向函数的指针没有结果

来自分类Dev

指向指针的c ++指针和接收指向指针的调用函数

来自分类Dev

指向C中的int指针数组的指针

来自分类Dev

错误1错误C3867:'Command :: getSecondWord':函数调用缺少参数列表;使用“&”创建指向成员的指针

来自分类Dev

C ++函数调用缺少参数列表;使用'&Runner :: runTask'创建一个指向成员的指针

来自分类Dev

指向C ++中的函数指针的指针

来自分类Dev

将指向2D VLA的指针作为函数参数传递给C中的行向量

来自分类Dev

Typedef指向C ++中C函数的指针

来自分类Dev

指向结构内部的元素的指针(C)

Related 相关文章

  1. 1

    如何创建指向函数C ++的指针的线程

  2. 2

    如何创建指向函数C ++的指针的线程

  3. 3

    C++ 使用指向指针向量的指针有什么好处?

  4. 4

    指向具有多个对象的成员函数的指针的向量C ++

  5. 5

    在C ++中使用指向内部类对象的指针作为外部类构造函数参数

  6. 6

    C ++在函数中使用指向结构的指针

  7. 7

    在C语言中,使用指向结构的指针来调用结构内部指向的函数会导致段错误

  8. 8

    指向对象的指针向量C ++

  9. 9

    指向int的指针的c ++指针

  10. 10

    C ++外部函数,带有指向函数作为参数的指针,在带有成员函数的类内部使用

  11. 11

    如何在C ++中使用指向结构的指针向量?

  12. 12

    创建指针的C ++向量

  13. 13

    如何在C#中创建“指向函数指针的typedef”?

  14. 14

    C++ 在地图内创建函数指针向量

  15. 15

    指向C ++中函数的指针

  16. 16

    指向函数内部指针的指针的c malloc未提供正确的大小

  17. 17

    指向函数内部指针的指针的c malloc未提供正确的大小

  18. 18

    指向使用Rcpp对象创建的C ++类的指针

  19. 19

    使用指向结构C ++的指针创建动态分配的数组

  20. 20

    从C ++类返回指向向量的指针

  21. 21

    C - 使用指向函数的指针没有结果

  22. 22

    指向指针的c ++指针和接收指向指针的调用函数

  23. 23

    指向C中的int指针数组的指针

  24. 24

    错误1错误C3867:'Command :: getSecondWord':函数调用缺少参数列表;使用“&”创建指向成员的指针

  25. 25

    C ++函数调用缺少参数列表;使用'&Runner :: runTask'创建一个指向成员的指针

  26. 26

    指向C ++中的函数指针的指针

  27. 27

    将指向2D VLA的指针作为函数参数传递给C中的行向量

  28. 28

    Typedef指向C ++中C函数的指针

  29. 29

    指向结构内部的元素的指针(C)

热门标签

归档