【发布时间】:2018-01-12 03:08:52
【问题描述】:
我需要关于 char 数组的帮助。我想创建一个 n 长度数组并初始化它的值,但是在 malloc() 函数之后,数组比 n*sizeof(char) 更长,并且数组的内容不仅仅是我分配的字符......在数组中很少随机字符,我不知道如何解决...我需要该部分代码用于学校考试的一个项目,我必须在周日之前完成...请帮助:P
#include<stdlib.h>
#include<stdio.h>
int main(){
char *text;
int n = 10;
int i;
if((text = (char*) malloc((n)*sizeof(char))) == NULL){
fprintf(stderr, "allocation error");
}
for(i = 0; i < n; i++){
//text[i] = 'A';
strcat(text,"A");
}
int test = strlen(text);
printf("\n%d\n", test);
puts(text);
free(text);
return 0;
}
【问题讨论】:
-
文本中只能存储 9 个字符,因为必须为空终止保留一个字符。还有don't cast the result of
mallocin C