这是我的代码:
char *genWord(int wordLen){
char array[wordLen + 1];
char *word;
int i;
for(i = 0; i <= wordLen; i++){
array[i] = 'a';
}
array[wordLen] = '\0';
//Test1 printf
printf("%s \n", array);
word = array;
//Test 2
printf("%s \n", word);
return word;
}
main(){
char *word;
int wordLen = 10;
word = (char *)genWord(wordLen);
//Test 3
printf("%s", word);
}
这是我在 Linux gcc 中执行的 3 个(相同程序)的输出:
第一个:
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaT��aaaaa
第二:
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaa�ƃ�aaaaa
第三:
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaaaaaaaaaaa
aaaaaaaaaaaa����aaaaa
无法弄清楚出了什么问题,更糟糕的是,无法想象我如何在每次运行时获得不同的输出?变量词不能在字符串的一部分中有垃圾,对吗?!