[英]Error - Subscripted value is neither array nor pointer nor vector in C
我已經編寫了以下代碼,但我收到了這些錯誤和警告,我無法在此代碼中解決這些錯誤和警告。
在 function '主要':
[警告] 傳遞 'matrix_read' 的參數 1 使 integer 從沒有強制轉換的指針
[注意] 預期為“int”,但參數的類型為“int (*)[(sizetype)(no_of_columns)]”
在 function 'matrix_read' 中:
[錯誤] 下標值既不是數組也不是指針也不是向量
#include <stdio.h>
int no_of_rows, no_of_columns;
int matrix_read(int read_input);
int main() {
int matrixA[no_of_rows][no_of_columns];
printf("Enter the number of rows:");
scanf("%d", &no_of_rows);
printf("Enter the number of columns:");
scanf("%d", &no_of_columns);
matrix_read(matrixA);
return 0;
}
//Function to read the value from the users
int matrix_read(int read_input){
int i,j;
for(i=0; i < no_of_rows; i++ ){
for(j=0; j < no_of_columns; j++){
printf("Enter the elemnts [%d][%d]: ", i+1, j+1);
scanf("%d", &read_input[i][j]);
}
}
} ```
int matrix_read(void *read_input, size_t no_of_rows, size_t no_of_columns);
int main(void)
{
size_t no_of_rows, no_of_columns;
printf("Enter the number of rows:");
scanf("%zu", &no_of_rows);
printf("Enter the number of columns:");
scanf("%zu", &no_of_columns);
int matrixA[no_of_rows][no_of_columns];
matrix_read(matrixA, no_of_rows, no_of_columns);
return 0;
}
//Function to read the value from the users
int matrix_read(void *read_input, size_t no_of_rows, size_t no_of_columns)
{
int (*array)[no_of_rows][no_of_columns] = read_input;
size_t i,j;
for(i=0; i < no_of_rows; i++ )
{
for(j=0; j < no_of_columns; j++)
{
printf("Enter the elemnts [%zu][%zu]: ", i+1, j+1);
scanf("%d", &(*array)[i][j]);
}
}
return 0;
}
#include <stdio.h>
int no_of_rows, no_of_columns;
int matrix_read(int read_input);
int main() {
int matrixA[no_of_rows][no_of_columns];
printf("Enter the number of rows:");
scanf("%d", &no_of_rows);
printf("Enter the number of columns:");
scanf("%d", &no_of_columns);
matrix_read(matrixA);
return 0;
}
//Function to read the value from the users
int matrix_read(int read_input){
int i,j;
for(i=0; i < no_of_rows; i++ ){
for(j=0; j < no_of_columns; j++){
int matrixA[i][j];
printf("Enter the elemnts [%d][%d]: ", i+1, j+1);
scanf("%d",&matrixA[i][j]);
}
}
}
您忘記在主下方的 function 中提及您的陣列。 Function 正在嘗試訪問陣列,但找不到它。 您必須在 function 中定義它,以便它可以訪問它。 這段代碼工作正常,唯一的區別是
//int matrixA[i][j];
// .
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.