问题描述
声明一个大小为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可能会引发异常。
资源: