求大神大侠!!!
程序代码:#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define SIZE (8)
struct T{
char flag[4];
char ch;
};
int main(){
struct T * array = malloc(sizeof(struct T)*SIZE);
memset(array, -1,5 * SIZE);
printf("===dump array===\n");
int i,j;
for(i=0;i<SIZE;i++){
printf("array[%d]\tflag=",i);
for(j=0;j<4;j++)
printf("%x",array[i].flag[4]);
printf("\tch=%d\n",array[i].ch);
}
printf("===end===\n");
free(array);
return 0;
}这个程序是好的,但为什么我之前没在定义flag那里加上大小,出来的结果就是乱码的呢?









