【发布时间】:2014-02-05 01:58:31
【问题描述】:
如何修复此功能?我得到的错误是:从 char 到 const char* 的无效转换在线
if(strcmp('\0', p->pubLow[i][j]) == 0) {
代码:
struct Prefix {
int no; // number of entries
int area[MAX]; // area elements
char pubLow[MAX][8]; // low end of publisher range
char pubHgh[MAX][8]; // high end of publisher range
int pubLen[MAX]; // no of chars in publisher string
};
int minNoDigits(const Prefix* p, int area) {
int minNoDigits = 0;
for(int i = 0; i < p->no; i++) {
if(area == p->area[i]) {
cout << "p->pubLow[i] is: " << p->pubLow[i] << endl;
minNoDigits = 1;
for(int j = 1; j < 3; j++) {
if(p->pubLow[i][j] = '\0') {
j = 3;
i = p->no;
}
else {
minNoDigits++;
}
}
}
}
return minNoDigits;
}
编辑以提供更多信息。
我已将行改为
if(p->pubLow[i][j] = '\0') {
新错误:
assignment of read-only location p->Prefix::pubLow[i][j]
【问题讨论】:
-
pubLow的类型是什么? -
@KirilKirov pubLow 似乎是 char**
-
@OP 为什么你不能阅读@987654326的文档 @?说真的……
-
您错误地从答案中获取了代码,这就是您收到分配错误的原因。仔细阅读,看看有什么不同,然后理解。
-
@OP 这确实可以由
strcmp的文档来回答,正如 H2CO3 已经提到的 (-1)