【发布时间】:2016-01-17 23:07:59
【问题描述】:
所以我制作了一个关于动态分配的 char 数组的程序,该程序尚未完成,但在我运行程序后我得到了一些不同的返回值,没有警告,编译器中没有错误所以我不'不知道为什么有时程序会崩溃..
#include <stdlib.h>
#include <stdio.h>
#include <malloc.h>
#include <string.h>
int main(){
int n,i;
char *tab=NULL;
printf("New size of array: ");
scanf("%d",&n);
tab=(char*)malloc(n*sizeof(char));
memset(tab,'X',n*sizeof(tab));
for(i=0;i<n;i++)
printf("%c",tab[i]);
free(tab);
return 0;
}
【问题讨论】:
-
memset(tab,'X',n*sizeof(tab));-->memset(tab,'X',n*sizeof(*tab));