在我的数组的最后一个内存位置随机生成高整数



我用随机数填充一个随机大小的数组。随机数的值不应大于1000。大多数情况下,它工作得很好,但偶尔当我运行程序时,最后一个内存位置将显示高于1000的数字。我做错了什么?某种空终止器我失踪了吗?我是新手级别。

#include <stdio.h>
#include <time.h>
#include <stdlib.h>
#define Random(high, low) (rand() % (high - low)) + low
int * GetArray(int);
int main()
{
srand(time(NULL)); 
int num = Random(15, 5);
GetArray(num);
return 0;
}
int * GetArray(int size){
int* ptr = (int*)malloc(size * sizeof(int));
for(int x = 0;x < size;x++){
ptr[x] = Random(1000,1);
}
printf(" Forward: ");
for (int x=0; x<=size; x++){
printf("a[%d]=%d  ",x, ptr[x]);
}
printf("rnBackward: ");
for (int x=size; x >=0 ; x--){
printf("a[%d]=%d  ",x, ptr[x]);
}
return ptr;
}

假设数组的大小是5,那么第一名是0,第二名是1,第三名是2,第四名是3,第五名是4!所以它的大小是- 1

因此你应该这样写for循环:

for(int x = 0; x < size; x++)

for(int x = size - 1; x >= 0; x--)

最新更新