小编str*_*oop的帖子

gcc 4.4.3下C代码中的奇怪行为

我今天遇到了这段代码,同时辅导一些C语言课程的学生.该练习要求实施两项职能.第一个扫描用户的输入,第二个显示先前扫描的内容.我遇到的代码如下:


#include <stdio.h>

void myInput(int i,int n)
{
  int cpt;
  int tab[n];   

  for ( cpt=0; cpt<n; cpt++)
  {
    printf("Enter a number :");
    scanf("%d",&i); 
    tab[cpt]=i;
   }
 }



void myDisp (int n)
{
  int tab[n];      
  int cpt;

  for ( cpt=0; cpt <n; cpt++)
  {
    printf("%d ", tab[cpt]); 
  } 
}

int main()
{
  int n; int i;
  printf(" Entrer the numbers of elements you want: \n");
  scanf("%d \n",&n);
  int tab[n];
  myInput(i,n);         
  myDisp(n);
}
Run Code Online (Sandbox Code Playgroud)

虽然这段代码充满了不一致,但它实际上在gcc 4.4.3下工作:它显示已经输入的数字!!!!!! 有谁知道这些代码是如何工作的?

非常感谢

c

2
推荐指数
1
解决办法
177
查看次数

标签 统计

c ×1