我正在处理由两个文件组成的链接程序。函数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;
}
}
我相信我的错误是我试图将一个整数放入指针数组中 - 我仍然不了解它是如何工作的。我如何将随机数插入指针数组?
答案 0 :(得分:1)
首先使用malloc
为其分配内存。
intArray = malloc(sizeof(int)*length);
你做的方式不起作用。 intArray[length]
完成后,别忘了free
那个记忆。
答案 1 :(得分:0)
intArray指向哪里?使用malloc为长度16分配内存。
intArray = malloc(sizeof(int)*length);
你想通过这个来实现目标:?
intArray[length];