#include <stdio.h>
#include <stdlib.h>
int main(void){
int n, i, j;
printf("Enter the number of rows and columns: ");
scanf("%d", &n);
int **matrix = malloc(n * sizeof(int *));
for(i = 0; i < n; i++)
matrix[i] = malloc(n * sizeof(int *));
// Read the matrix
for(i=0; i<n; i++)
for(j=0; j<n; j++){
printf("matrix[%d][%d]= ",i+1,j+1);
scanf("%d",&matrix[i][j]);
}
// Print the matrix
for(i = 0; i < n; i++){
printf("%\n");
for(j = 0; j < n; j++)
printf("%d", matrix[i][j]);
}
// Free the allocated memory
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
free((void *)matrix[i]);
free(matrix);
// Just checking if the memory has been freed
for(i = 0; i < n; i++){
printf("%\n");
for(j = 0; j < n; j++)
printf("%d ", matrix[i][j]);
}
system("PAUSE");
return 0;
}
Я просто пытался динамически выделять матрицу. Хотя в CodeBlocks все работает отлично, поскольку мы работаем с Visual Studio в университете, я решил протестировать код в VS 2010. Я был удивлен, что у меня так много ошибок и что код не будет компилироваться. Я хотел бы знать, как я могу исправить проблему, поэтому VS будет компилировать код просто отлично.Динамическое распределение Visual Studio многомерного массива
Вот errorrs:
(10): error C2143: syntax error : missing ';' before 'type'
(13): error C2065: 'matrix' : undeclared identifier
(13): error C2109: subscript requires array or pointer type
(19): error C2065: 'matrix' : undeclared identifier
(19): error C2109: subscript requires array or pointer type
(26): error C2065: 'matrix' : undeclared identifier
(26): error C2109: subscript requires array or pointer type
(33): error C2065: 'matrix' : undeclared identifier
(33): error C2109: subscript requires array or pointer type
(33): error C2198: 'free' : too few arguments for call
(35): error C2065: 'matrix' : undeclared identifier
(35): warning C4022: 'free' : pointer mismatch for actual parameter 1
(41): error C2065: 'matrix' : undeclared identifier
(41): error C2109: subscript requires array or pointer type
Ошибки должны дать вам подсказку, как исправить код. –
объявление переменной, помещенное в начале блока. – BLUEPIXY