解释指针数组

时间:2014-04-12 18:24:11

标签: c pointers segmentation-fault

我正在处理由两个文件组成的链接程序。函数createArray()创建一个长度的数组,它存储0到3之间的随机数。它是第二个文件的一部分,它与第一个文件链接,以便在它创建一个大程序时编译。我收到了第一个文件的所有声明,包括扩展名。无论如何,我编译并运行程序,但是我得到了一个Segmentation Fault错误,我假设它归结为实际将随机数放入数组的行。

int length;
int* intArray;
int maxRandVal;

void createArray(){
  length = 16;     
  maxRandVal = 3;  
  intArray[length];
  int i = 0;
  for (i; i < length; i++){
    int r = rand() % (maxRandVal+1);
    intArray[i] = r;
  }
}

我相信我的错误是我试图将一个整数放入指针数组中 - 我仍然不了解它是如何工作的。我如何将随机数插入指针数组?

2 个答案:

答案 0 :(得分:1)

首先使用malloc为其分配内存。

intArray = malloc(sizeof(int)*length);

你做的方式不起作用。 intArray[length]

完成后,别忘了free那个记忆。

答案 1 :(得分:0)

intArray指向哪里?使用malloc为长度16分配内存。

intArray = malloc(sizeof(int)*length);

你想通过这个来实现目标:?

intArray[length];