声明一个字符数组Arr,大小为5

问题描述

声明一个大小为5的字符数组Arr。不带scanf即可读取字符。使用指针变量,更改Array中的字符。 打印原始的Arr,然后打印具有Address的更改的数组。

解决方法

char *charArr[5]; // Declare a Character Array of Size 5 (1)
fgets(charArr,5,stdin); // Read characters into array without scanf (2)

void change(int **array,int length){
    *array = malloc(length * sizeof(int));
    if (*array == NULL)
      return;
    for (int i = 0 ; i < length ; i++)
       (*array)[i] = 1;
    }
}
printf("%s\n",charArr); // simply prints array of chars (3.a) Inital array set of vals
change(&charArr,5); // change values within array
printf("%s\n",charArr); // simply prints array of chars (3.b) array set of vals after change

free(array); // Free's up Malloc

我不熟悉C,但是,我认为这是与这些相似的东西。我希望使用下面的资源来推断解决方案

注意,如果确实失败,请查看下面的stackoverflow链接。它开始描述使用带有预定义内存的malloc可能会引发异常。

资源: