【发布时间】:2020-09-12 08:02:57
【问题描述】:
*当我想将随机数填充到数组时出现错误。 我认为问题在于指针 错误在这里 ' ptr[i][j]= rand() % 40000 +5; '* 错误名称:下标值既不是数组也不是指针也不是向量
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
int* create_matrix_fill_random (int satir,int sutun);
int main()
{
srand(time(NULL));
printf("Matrix automatically created 3x3");
int a=3;
int *matrix = create_matrix_fill_random(a,a);
return 0;
}
int* create_matrix_fill_random (int row, int col)
{
int *ptr;
ptr = malloc(row*col*sizeof(int));
int i,j;
for (i=0;i<row;i++){
for (j=0;j<col;j++){
ptr[i][j]= rand() % 40000 +5;
//Mistake ^ ^ ^ ^ ^ ^
}
}
return ptr;
}
【问题讨论】:
-
@ArdentCoder 或者甚至是
ptr[i + j * col]。 -
@AdrianMole 当然,我只是在暗示将二维数组投影到一维数组上。 OP 可以以行主要形式或列主要形式:)
-
@ArdentCoder 但是你的“公式”是错误的!另一个选项是
ptr[i * col + j]。 -
@AdrianMole Lol 我没注意,使用库来完成这些任务让我忘记了基础知识:P
标签: c arrays pointers function-pointers void