从“char*”到“char”[-fpermissive]的转换无效,数组下标的类型“char[int]”无效
invalid conversion from ‘char*’ to ‘char’ [-fpermissive] and invalid types ‘char[int]’ for array subscript
int main() {
int casee;
int m, n;
int k;
char* a;
char ch;
cin >> casee;
cin >> m;
cin >> n;
a = new char[m];
for (int i = 0; i < m; i++) {
a[i] = new char[n]; // # 20
}
for (int i = 0; i < n; i++) {
for (int j = 0; j < m; j++) {
cin >> ch;
a[i][j] = ch; // # 28
}
}
cout << a[2][3] << endl; // # 32
return 0;
}
在 28、30、32 行中,我有一些这样的错误。.
proj1.cpp: In function ‘int main()’:
proj1.cpp:20:18: error: invalid conversion from ‘char*’ to ‘char’ [-fpermissive]
proj1.cpp:28:10: error: invalid types ‘char[int]’ for array subscript
proj1.cpp:32:15: error: invalid types ‘char[int]’ for array subscript
我想使用动态分配方法分配一个多维数组。但是,我听说它不能通过动态分配来分配。因此,我使用 for 循环进行分配。但是,它没有奏效。
如果你这样回答(↓(,也许我不会明白为什么"[wprime]"前面有指针 请回答指针在那里另外存在的原因。
grid = new int* [wprime];
for (int i = 0; i < wprime; i++)
grid[i] = new int[hprime];
我该如何解决问题..请帮帮我b.b
正在解决您的类型问题...
正如 wRAR 所说,问题似乎出在需要char** a;
char* a;
.char*
是一种指针类型,它引用要解释为char
值的内存块,例如在字符串中。您在这里似乎需要的是 char**
,这是一种指针类型,它引用要解释为单个char*
值的内存块,例如字符串数组。
另一个问题是您需要初始化char** a;
以实际存在,因为目前它不会指向任何特定内容。因此,您很可能会收到导致应用程序崩溃的访问冲突。要初始化,请执行类似 char** a = new char* [m];
的操作。
如果你想要一个char*
数组,你需要将其声明为char**
(代码中a
变量(。
相关文章:
- 将 const 转换为 const char* 无效,我该如何解决?使用 gcc7 时失败
- 类型"int"和"const char [15]"到二进制"运算符<<"的无效操作数^
- 错误:从'void*'到'const uint8_t* {aka const unsigned char*}'的转换无效 [-允许]
- 错误:从 'char' 到 'const char' [-允许] strcat(加密,密钥[i])的转换无效;
- C++ - 从 "int" 到 "unsigned char" 的缩小转换无效
- 错误:AES 加密密钥:从"char*"到"无符号字符"的转换无效
- 无法确定为什么函数调用中从 char* 到 char 的无效转换
- 我收到一个错误无效的操作数,类型为 const char [42] 和二进制"运算符+"的双倍数
- 在 sprintf 中从 'signed char*' 到 'char*' 的转换无效
- 在这个简单函数中从'char'到'const char*'的无效转换
- 'const char [26]' 和 'LPSTR ' 类型的无效操作数
- C++从 'const char*' 到 'char*' Arduino Uno 的无效转换
- 如何修复C++中的"错误:从'int'到'const char*'[-fallowive]的无效转换?
- 将文本文件读取为 const char* 有时有效,有时无效
- C++:"错误:类型'const char*'和'const char [28]'的操作数无效到二进制'ope
- C++错误:从"char"到"const char*"的转换无效[-允许]
- 从'const char**'到'char* const*'的转换无效
- 从 'char' 到 'char*' strcat 函数的转换无效
- 使用表达式初始化char*无效
- 简单的 int 到字符串转换..int to const char* 无效