打印数组元素时,C语言中的意外答案

时间:2018-10-20 16:32:24

标签: c arrays pointers

void stringToBinary(char str[], bool arr[]) {
  int n = strlen(str);
  arr = (bool*)malloc(sizeof(bool)*n);
  for (int i = 0; i < n; ++i) {
    arr[i] = (str[i] == '1');
    printf("%d", arr[i]);
  }
};

上面的代码打印出预期的“ 010101111”。

int main() {
  char test[] = "010101111";
  bool *output;
  stringToBinary(test, output);
  printf("\n%d\n", output[0]);
  return 0;
};

但是,此代码打印出243; 为什么会这样?

0 个答案:

没有答案