c - 为什么我不能将此数组传递和编辑给函数?
问题描述
我之前的问题得到了回答,但我还有另一个同样的问题。为什么我尝试使用多维数组时代码不起作用?
void change(int *);
int main(void){
int array[1][2] = {2};
printf("%d", array[1][2]);
change(array);
printf("%d", array[1][2]);
}
void change(int *array){
array[1][2] = 4;
}
解决方案
您需要在声明和定义时使用星号作为参数。为了使array[0]=4,您只需将4分配给array[0],不带星号。所以你的代码应该是:
void change(int *);
int main(void){
int array[1] = {2};
printf("%d", array[0]);
change(array);
printf("%d", array[0]);
}
void change(int *array){
array[0] = 4;
}
推荐阅读
- python - 如何使用 spaCy (nlp.pipe) 修复大型数据集的低性能进行预处理
- macros - Imagej 宏错误:语句不能以 { 开头
- java - 前台服务运行时如何检测当前前台应用程序
- java - 语音识别和翻译
- javascript - 为什么 sendSignInLinkToEmail 会重定向到我托管的 index.html?
- reactjs - 如何为功能组件声明 navigationOptions?
- java - 以编程方式设置 ImageView 资源不起作用
- ruby-on-rails - Active Record:如何根据与给定属性没有关联来查找父级
- typescript - typescript - 如何在特定位置扩展接口(扩展库 xstate 的基本状态)
- android - Android 图像文件不显示