错误的创建方式
#include
#include
int main(void)
{
int n,i;
scanf_s("%d", &n, 5);
int num[n];
for (i = 0; i < n; i++)
{
scanf_s("%d", &num[i], 5);
}
system("pause");
return 0;
}
正确的创建方式
#include
#include
int main(void)
{
int n,i;
scanf_s("%d", &n, 5);
int *p = (int*)malloc(sizeof(int)*n);//用指针声明了一个一维的动态数组
for (i = 0; i < n; i++)
{
scanf_s("%d",p+i, 5);
}
printf("\n");
for (i = 0; i < n; i++)
{
printf("%d", *(p + i));
printf("\n");
}
system("pause");
return 0;
}
创建动态数组不能直接通过创建数组的方式,而是应该创建指针(也相当于数组)并为指针分配内存空间