在向量上插入新值(C语言)

在向量上插入新值(C语言),c,function,pointers,function-pointers,C,Function,Pointers,Function Pointers,我正在尝试创建一个函数来详细描述数组。我不知道如何在函数上输入向量或数组,然后返回修改后的向量/数组(我尝试使用指针) 这是可能的还是我用错了指针 int newValue(int *p){ // modify the vector return p; } int main(){ int a[6]={4,6,7,3,1,8}; int *p; p = a; p = newValue (p); (这是转让: 给定一个VET_大小的整数元素数组:

我正在尝试创建一个函数来详细描述数组。我不知道如何在函数上输入向量或数组,然后返回修改后的向量/数组(我尝试使用指针)

这是可能的还是我用错了指针

int newValue(int *p){
    // modify the vector
    return p;
}

int main(){
    int a[6]={4,6,7,3,1,8};
    int *p;
    p = a;
    p = newValue (p);
(这是转让: 给定一个VET_大小的整数元素数组: 编写一个函数,在函数的特定索引中插入新值 数组,并向前移动以下元素,而不移动 删除现有值(最后一个元素的值除外)

我不知道如何在函数上输入向量或数组,然后重新调用修改后的向量(我尝试使用指针)

您只需传递数组本身,就可以在函数
newValue
中直接修改它。大概是这样的:

void newValue(int *p, size_t n){
    // modify the 2nd item
    p[1] = 10;
}
然后在
main
中调用它:

newValue(a);
几点注意:

  • 您的
    newValue
    不需要返回任何内容(
    void
    可以),因为您可以直接更改数组
  • void newValue(int*p,size\t n)
    void newValue(int p[],size\t n)
    相同,因为数组
    衰减到指针
  • 通常,传递一个关于输入数组大小的附加参数
    n
    是很好的,这样您就可以在函数中检查以确保没有越界访问权限

编写构造函数:创建“vector”结构并返回指向它的指针(需要malloc)。然后,将向量作为另一个参数添加到“newValue()”函数中。您可以通过在循环中调用“newValue”6次或编写另一个接受数组和长度的“addArray”函数来添加初始6个值。您可以使用“vector”一词,而赋值和C语言使用“array”。这是出于某种特殊原因吗?如果没有,我建议你编辑这个问题,以更好地反映你的意思。那么,你在哪些方面有问题还不清楚。您知道如何读取数组元素的值吗?写它们?你知道指针是什么吗?您是否理解,指向数组第一个元素的指针通常可以作为数组的代理(您是否理解为什么会这样)?最后:您是否理解赋值(即,您能否在操作前生成一个或两个数组示例以及操作后所需的状态)?我在函数中使用指针和数组时遇到问题,但别担心,我已经得到了正确的回答。例如:原始数组:4 6 7 3 1 8//插入[3]=10插入后的数组:4 6 7 10 3 1不适用于添加额外值:(谢谢!我对指针的概念不太熟悉,在函数中使用它会使它变得更难,但我慢慢地理解了它。我认为作业要求将索引较高的元素移到正确的位置。是的,我不需要添加额外的指针。)values@FuriaseFTW那就不是经典的向量了。