存储指针在向量中

时间:2016-05-21 21:20:54

标签: c pointers vector

我试图将指针存储在向量中,但是向我显示一条警告消息:
p.c: In function ‘main’:
p.c:22:6: warning: assignment from incompatible pointer type [enabled by default]
 V[0] = number;

我看到了什么信息意味着,但我无法修复错误。 我不确定向量声明或结构是否错误(或两者都有)!

感谢您的帮助!

只是一个例子:

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

void show(int *V[]);

struct age{
    int age;
    struct age *next;
};    
typedef struct age Age;

int main(){    
  int *V[3]; // Vector with 3 positions to store pointers

  Age* number = (Age *) malloc(sizeof(Age));
  number->age = 20; 
  number->next = NULL;

  V[0] = number;

  show(V);

  return 0;
}

void show(int *V[])
{
  printf ("\n%p\n",V[0]);
}

1 个答案:

答案 0 :(得分:0)

我认为问题是V数组是一个int数组,因为它应该是Age的数组。

你应该像那样实现它:

Age *V[3];

我希望它能帮助:)。

(如果你只想要一个通用指针数组,请使用void*,但我不适合这个问题)