我正在使用 malloc 创建一个二维数组,当我遍历数组时,那里有我不想要的字符和符号。数组不应该完全为空吗?
我试图将空字符分配给每一行的开头,但这不会改变任何东西。
char **structure;
structure = malloc(sizeof *structure * 2);
if (structure) {
for (size_t i = 0; i < 2; i++) {
structure[i] = malloc(sizeof *structure[i] * 20);
structure[i][0] = '\0';
}
}
for (int i = 0; i <= 2; i++) {
for (int j = 0; j < 20; j++) {
printf("%c ", structure[i][j]);
}
printf("\n");
}
我希望输出只是空格,但这就是出现的情况:
Z Ñ P Ñ l L O
Z Ñ P Ñ N U M B
最佳答案
您应该使用 calloc
函数;这是我经常使用的。它的工作与 malloc()
相同,但它使用 0
初始化所有分配的位。
calloc documentation
关于c - 如何使二维字符数组完全为空?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55557086/