c++ - 双指针问题错误通过函数
问题描述
我有一个二维数组,我想通过一个函数
char blendModeOptions[18][16]={"Normal","Darken","Multiply","Color Burn","Linear Burn","Lighten","Screen","Color Dodge","Linear Dodge","Overlay","Soft Light","Hard Light",
"Vivid Light","Linear Light","Pin Light","Difference","Exclusion","Hue"};
blendMode = KIT_CreateSelectOption(blendModeOptions,18,&blendModeRect);
函数的声明是:
KIT_SelectOption * KIT_CreateSelectOption(char ** options,int size ,SDL_Rect * rect);
我收到警告:
note: expected 'char **' but argument is of type 'char (*)[16]'
在函数内部我int KIT_AddOption(KIT_SelectOption *box, const char * option);
通过这个参数调用一个函数KIT_AddOption(box,options[i]);
当我在这行代码中时,我的程序崩溃了KIT_AddOption
strcpy(opt->name,option);
我已经尝试char * option[16]
过,char ** option
但它不起作用。
解决方案
您需要将数组定义为指针数组,而不是二维字符数组。
char *blendModeOptions[]={"Normal","Darken","Multiply","Color Burn","Linear Burn","Lighten","Screen","Color Dodge","Linear Dodge","Overlay","Soft Light","Hard Light",
"Vivid Light","Linear Light","Pin Light","Difference","Exclusion","Hue"};
推荐阅读
- javascript - 退出博览会后如何查看日志(Console.log)?
- vba - 附加的 VBA 语法是否正确
- flutter - Flutter 从相关的小部件类更改状态
- linux - 我想使用带有日志文件位置作为参数的 shell 脚本以所需的命名约定压缩日志文件
- python-3.x - 在 tkinter 计算器中使用窗口大小自动调整文本大小
- node.js - 从 IAM 角色 EC2 实例而不是 nodejs 中的 env 加载凭证
- ios - 如何以编程方式在 TableViewCell 中添加 SearchBar?/迅速
- qt - 在鼠标区域无法触发 qml 中的 java 脚本功能
- javascript - 在 THREE.js 中绘制 3d 边界框
- lucene - MultiFieldQueryParser 模糊搜索