打印动态数组,Visual Studio - c

时间:2013-11-27 17:32:53

标签: c arrays dynamic

我在C中编写了一个简单的代码来练习动态数组,但是visual studio不能正常运行吗?它显示没有错误,似乎存储输入,但不打印。请帮助。

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#define SIZE 3

int main(void){

    int *a = malloc(SIZE * sizeof(int));
    int i;

    if (a == NULL){
        puts("not enough memory");
    }
    else{
        for (i = 0; i < SIZE; i++){
            printf("entry %d\n", i+1);
            scanf("%d", &a[i]);
        }
        printf("printing\n");
        for (i = 0; i < SIZE; i++){
            printf("%d\n", a[i]);
        }
            free(a);

        puts("press any key to exit...");
        getchar();
        return 0;
    }
}

1 个答案:

答案 0 :(得分:2)

scanf (最后)中未使用的换行符在最后 getchar 中使用。正如你所想,它并没有成为停止状态。

例如如下。

更改

scanf("%d", &a[i]);

scanf("%d%*c", &a[i]);//consumed newline every time

更改

getchar();

getchar();//consumed last newline for scanf
getchar();//wait for key stroke