神奇了!!我实在是看不出这个程序有什么不对劲??
数组p的长度应可以由a 来控制,比如输入3,即a的值等于3了,于是p 中可放3个字符。
可是为什么不行呢??
#include"stdio.h" #include"malloc.h"
void main() { int a,i; char *p; printf("please Enter a number.\n"); scanf("%d",&a); p=(char *)malloc(a*sizeof(char)); for(i=0;i<a;i++) { printf("please Enter a chart."); scanf("%c",p+i); } for(i=0;i<a;i++) printf("%c",p[i]); printf("\n"); }
按本人意愿,该程序中数组p的长度可由a来控制,例如:
输入4后,数组p应可以存放4个字符。可结果只能存放一个,而且会一次性输出两个:
please Enter a chart.
这是为什么呢??