Bool vs char * conversion


 
Thread Tools Search this Thread
Top Forums Programming Bool vs char * conversion
# 1  
Old 01-11-2017
Bool vs char * conversion

I have a problem at make step to install a downloaded package consisted of different programs.
Code:
In file included from kcdbext.cc:16:0:
kcdbext.h: In member function �char* kyotocabinet::IndexDB::get(const char*, size_t, size_t*)’:
kcdbext.h:1281:14: error: cannot convert �bool’ to �char*’ in return
       return false;

1) I have tried
Code:
export LANG="en_US.UTF-8"; make

to correct the weird characters, but this seems to be a temporary fix. What is the permanent fix?
2) The error message is
Code:
kcdbext.h: In member function 'char* kyotocabinet::IndexDB::get(const char*, size_t, size_t*)':
kcdbext.h:1281:14: error: cannot convert 'bool' to 'char*' in return:
       return false;

The code fragment of the function prototype is:
Code:
char* get(const char* kbuf, size_t ksiz, size_t* sp) {
if (omode_ == 0) {
     //......
     return false;
   }

//more code ...
return rbuf;
}

I know the function is declared as char *, which is conflict with the returned value as a boolean "false". How to fix this syntax problem?
Thanks a lot!

Last edited by yifangt; 01-11-2017 at 03:54 PM.. Reason: typos
# 2  
Old 01-11-2017
That is very strange. 'false' really does not belong there and never did, no idea what the writer of that function was doing.

I can't tell you what the right value to return is without examining that entire function and possibly a lot more.
This User Gave Thanks to Corona688 For This Post:
# 3  
Old 01-11-2017
Thanks!
It is a too long code to attach it here. I may need to go back to check the code again. The machine is:
Code:
Linux yt2 4.3.0-1-amd64 #1 SMP Debian 4.3.3-5 (2016-01-04) x86_64 GNU/Linux
Thread model: posix
gcc version 6.2.0 20161027 (Debian 6.2.0-10)

On another machine with smaller RAM, I only got warning but not error on it, and it went through to have all the programs compiled.
Code:
Linux HPCompaq 4.4.0-57-generic #78-Ubuntu SMP Fri Dec 9 23:50:32 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.4)

Is there any option(s) that I may have missed from the compiling part? Thanks again.
# 4  
Old 01-11-2017
No idea. Not enough information.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Programming

Invalid conversion from char* to char

Pointers are seeming to get the best of me and I get that error in my program. Here is the code #include <stdio.h> #include <stdlib.h> #include <string.h> #define REPORTHEADING1 " Employee Pay Hours Gross Tax Net\n" #define REPORTHEADING2 " Name ... (1 Reply)
Discussion started by: Plum
1 Replies

2. Programming

SQL: Alter existing bool after printing

I'm writing a DB to manage books & dvd's for the library. So after they added more books/dvd's, they press the print button and all newly added entries are printed. That is, as it prints all 'printed = false' entries, which (false) is the default value for that field for each new entry. ... (3 Replies)
Discussion started by: sea
3 Replies

3. Programming

Double to const char conversion

Dear all, I am using C and ROOT for programming. And I need to incorporate following in my code. char *fps=NULL; int dec=0,sign=0; float mean = h1->GetMean(1); //0.001298 fps= fcvt(mean,6 , &dec, &sign); I need to provide this mean as const char to some other function to get... (8 Replies)
Discussion started by: emily
8 Replies

4. Programming

Error message: invalid types 'bool...' (array problem)

Hello everyone. I'm stuck with an error message that neither I nor any of my computer science peeps can understand. The program I wrote is meant to be a simple decimal to binary converter, but with this message it's more complicated than I thought. Here's the code: #include <iostream>... (3 Replies)
Discussion started by: qf_woodfox
3 Replies

5. Programming

Error message: invalid types 'bool...' (array problem)

Hello everyone. I'm stuck with an error message that neither I nor any of my computer science peeps can understand. The program I wrote is meant to be a simple decimal to binary converter, but with this message it's more complicated than I thought. Here's the code: #include <iostream>... (2 Replies)
Discussion started by: qf_woodfox
2 Replies

6. Programming

error: invalid conversion from ‘const char*’ to ‘char*’

Compiling xpp (The X Printing Panel) on SL6 (RHEL6 essentially): xpp.cxx: In constructor ‘printFiles::printFiles(int, char**, int&)’: xpp.cxx:200: error: invalid conversion from ‘const char*’ to ‘char*’ The same error with all c++ constructors - gcc 4.4.4. If anyone can throw any light on... (8 Replies)
Discussion started by: GSO
8 Replies

7. Programming

conversion to 'char' from 'int' warning

Hi, I wrote a simple code in C++ converting from UpperToLower case characters. However, my compiler gives me a warning: "warning: conversion to 'char' from 'int' may alter its value". Any tips? I would like to stress, I don't want to load my string into char array. int ToLower(string... (4 Replies)
Discussion started by: kajolo
4 Replies

8. Shell Programming and Scripting

Non-ASCII char prevents conversion of manpage to plain text

Hello, I would like to export manual pages to plain text files. man CommandName | col -bx > CommandName.txt The above statement works successfully on Mac OS X. However, it often fails on my old Linux. The problem occurs if the source file of the manpage contains an escape sequence for... (5 Replies)
Discussion started by: LessNux
5 Replies

9. UNIX for Dummies Questions & Answers

ANSI C, char to hex conversion

Hi, I have a char buf,ch; and the buf is filled with the result from MySQL server which I get like this numbytes = recv(sock, buf, 1024, 0));I have the followingcode to display the results printf("received %ld bytes:\n",numbytes); for(c=0;c<numbytes;c++){ ch = (char)buf; ... (2 Replies)
Discussion started by: alikims
2 Replies

10. Programming

char to int64 conversion

Hi, I'm converting a C program that I made using the Visual Studio. I now use GCC (over Linux) and can't find some equivalences. I changed my __int64 definitions to unsigned long long, but can't find an equivalent to the microsoft i64toa() function, which let you convert a char* to a 64 bit... (1 Reply)
Discussion started by: Raspoutine
1 Replies
Login or Register to Ask a Question

Featured Tech Videos