Note that there are some explanatory texts on larger screens.

plurals
  1. POglibc detected realloc(): invalid pointer
    text
    copied!<p>Im constantly getting this when I build on Qtcreator. </p> <pre><code> *** glibc detected *** /home/Exxamples/EffectivCons: realloc(): invalid pointer: 0xb6fb5414 *** ======= Backtrace: ========= /lib/i386-linux-gnu/libc.so.6(+0x75ee2)[0xb6603ee2] /lib/i386-linux-gnu/libc.so.6(realloc+0x25d)[0xb660856d] /lib/i386-linux-gnu/libc.so.6(realloc+0x273)[0xb6608583] /opt/Qt5.1.1/5.1.1/gcc/lib/libQt5Core.so.5(_ZN9QListData7reallocEi+0x37)[0xb6906e67] /opt/Qt5.1.1/5.1.1/gcc/lib/libQt5Core.so.5(_ZN9QListData6appendEi+0x7c)[0xb6906f4c] /opt/Qt5.1.1/5.1.1/gcc/lib/libQt5Core.so.5(_ZN9QListData6appendEv+0x23)[0xb6906fd3] /opt/Qt5.1.1/5.1.1/gcc/lib/libQt5Core.so.5(+0x1afa3e)[0xb6a05a3e] /opt/Qt5.1.1/5.1.1/gcc/lib/libQt5Core.so.5(_Z21qRegisterResourceDataiPKhS0_S0_+0x216)[ </code></pre> <p>This is my code, through the other questions on the website, I saw some users using malloc or realloc, but Im not using it, why am i getting an error?</p> <pre><code> #include &lt;termios.h&gt; #include &lt;string.h&gt; #include &lt;stdlib.h&gt; #define BUFLEN 512 std::string numberToString(const int n); void sendExpressivAnimation(int,EmoStateHandle eState); void handleExpressivEvent(std::ostream&amp; os, EmoEngineEventHandle expressivEvent); bool handleUserInput(); void promptUser(); void nonblocking(); int getch(); int kbhit(); int createSocket(); int startSendPort = 30000; struct termios initial_settings, new_settings; int kbhit (void) { struct timeval tv; fd_set rdfs; tv.tv_sec = 0; tv.tv_usec = 0; FD_ZERO(&amp;rdfs); FD_SET (STDIN_FILENO, &amp;rdfs); select(STDIN_FILENO+1, &amp;rdfs, NULL, NULL, &amp;tv); return FD_ISSET(STDIN_FILENO, &amp;rdfs); } int main(int argc, char **argv) { EmoEngineEventHandle eEvent = EE_EmoEngineEventCreate(); EmoStateHandle eState = EE_EmoStateCreate(); unsigned int userID = 0; const int CONTROL_PANEL_PORT = 3008; bool connected = false; if(EE_EngineRemoteConnect("127.0.0.1", CONTROL_PANEL_PORT)== EDK_OK) { std::cout &lt;&lt;"Emotiv Engine started" &lt;&lt; std::endl; connected = true; } else { std::cout &lt;&lt;"Emotiv Engine failed !"&lt;&lt; std::endl; connected = false; } std::cout &lt;&lt; "Type \"exit\" to quit, \"help\" to list available commands..." &lt;&lt; std::endl; promptUser(); int _socket; _socket = createSocket(); if(connected) { nonblocking(); fflush(stdin); while (true) { // Handle the user input //if (_kbhit()) { if (!handleUserInput()) { break; } //} int state = EE_EngineGetNextEvent(eEvent); // New event needs to be handled if (state == EDK_OK) { EE_Event_t eventType = EE_EmoEngineEventGetType(eEvent); EE_EmoEngineEventGetUserId(eEvent, &amp;userID); switch (eventType) { // New headset connected, create a new socket to send the animation case EE_UserAdded: { std::cout &lt;&lt; std::endl &lt;&lt; "New user " &lt;&lt; userID &lt;&lt; " added, sending Expressiv animation to "; std::cout &lt;&lt; "127.0.0.1" &lt;&lt; ":" &lt;&lt; startSendPort &lt;&lt; "..." &lt;&lt; std::endl; promptUser(); break; } // Headset disconnected, remove the existing socket case EE_UserRemoved: { std::cout &lt;&lt; std::endl &lt;&lt; "User " &lt;&lt; userID &lt;&lt; " has been removed." &lt;&lt; std::endl; promptUser(); break; } // Send the Expressiv animation if EmoState has been updated case EE_EmoStateUpdated: { //std::cout &lt;&lt; "New EmoState from user " &lt;&lt; userID &lt;&lt; "..." &lt;&lt; std::endl; EE_EmoEngineEventGetEmoState(eEvent, eState); sendExpressivAnimation(_socket,eState); break; } // Handle Expressiv training event case EE_ExpressivEvent: { handleExpressivEvent(std::cout, eEvent); break; } default: break; } } else if (state != EDK_NO_EVENT) { std::cout &lt;&lt; std::endl &lt;&lt; "Internal error in Emotiv Engine!" &lt;&lt; std::endl; break; } } } EE_EngineDisconnect(); EE_EmoStateFree(eState); EE_EmoEngineEventFree(eEvent); return 0; } std::string numberToString(const int n) { char* buf; //_itoa(n, buf, 10); QString nStr = QString::number(n); buf = nStr.toLocal8Bit().data(); return std::string(buf); } void sendExpressivAnimation(int _socket,EmoStateHandle eState) { std::ostringstream output; EE_ExpressivAlgo_t upperFaceType = ES_ExpressivGetUpperFaceAction(eState); EE_ExpressivAlgo_t lowerFaceType = ES_ExpressivGetLowerFaceAction(eState); float upperFaceAmp = ES_ExpressivGetUpperFaceActionPower(eState); float lowerFaceAmp = ES_ExpressivGetLowerFaceActionPower(eState); if (ES_ExpressivIsBlink(eState)) { output &lt;&lt; "B,"; } if (ES_ExpressivIsLeftWink(eState)) { output &lt;&lt; "l,"; } if (ES_ExpressivIsRightWink(eState)) { output &lt;&lt; "r,"; } if (ES_ExpressivIsLookingRight(eState)) { output &lt;&lt; "R,"; } if (ES_ExpressivIsLookingLeft(eState)) { output &lt;&lt; "L,"; } if (upperFaceAmp &gt; 0.0) { switch (upperFaceType) { case EXP_EYEBROW: output &lt;&lt; "b"; break; case EXP_FURROW: output &lt;&lt; "f"; break; default: break; } output &lt;&lt; numberToString(static_cast&lt;int&gt;(upperFaceAmp*100.0f)) &lt;&lt; ","; } if (lowerFaceAmp &gt; 0.0) { switch (lowerFaceType) { case EXP_CLENCH: output &lt;&lt; "G"; break; case EXP_SMILE: output &lt;&lt; "S"; break; case EXP_LAUGH: output &lt;&lt; "H"; break; case EXP_SMIRK_LEFT: output &lt;&lt; "sl"; break; case EXP_SMIRK_RIGHT: output &lt;&lt; "sr"; break; default: break; } output &lt;&lt; numberToString(static_cast&lt;int&gt;(lowerFaceAmp*100.0f)) &lt;&lt; ","; } std::string outString = output.str(); // Remove the last comma if (outString.length()) { outString.resize(outString.length()-1); } if (!outString.length()) { outString = std::string("neutral"); } if(send(_socket, outString.c_str(), BUFLEN, 0)==-1) { std::cout&lt;&lt;"sending error"&lt;&lt;std::endl; //exit(1); } } void handleExpressivEvent(std::ostream&amp; os, EmoEngineEventHandle expressivEvent) { unsigned int userID = 0; EE_EmoEngineEventGetUserId(expressivEvent, &amp;userID); EE_ExpressivEvent_t eventType = EE_ExpressivEventGetType(expressivEvent); switch (eventType) { case EE_ExpressivTrainingStarted: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " STARTED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingSucceeded: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " SUCCEEDED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingFailed: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " FAILED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingCompleted: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " COMPLETED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingDataErased: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training data for user " &lt;&lt; userID &lt;&lt; " ERASED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingRejected: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " REJECTED!" &lt;&lt; std::endl; break; } case EE_ExpressivTrainingReset: { os &lt;&lt; std::endl &lt;&lt; "Expressiv training for user " &lt;&lt; userID &lt;&lt; " RESET!" &lt;&lt; std::endl; break; } case EE_ExpressivNoEvent: default: //@@ unhandled case assert(0); return; } promptUser(); } bool handleUserInput() { static std::string inputBuffer; char c = getch(); if ((int)c == 10) { std::cout &lt;&lt; std::endl; std::string command; const size_t len = inputBuffer.length(); command.reserve(len); // Convert the input to lower case first for (size_t i=0; i &lt; len; i++) { command.append(1, tolower(inputBuffer.at(i))); } inputBuffer.clear(); bool success = parseCommand(command, std::cout); promptUser(); return success; } else { if ((int)c == 127) { // Backspace key if (inputBuffer.length()) { putchar('\b'); putchar(' '); putchar('\b'); inputBuffer.erase(inputBuffer.end()-1); } } else { std::cout &lt;&lt; c; if(((int) c == 32) || ((int)c == 95) || (((int)c &gt;= 97 &amp;&amp; (int)c &lt;=122)) || (((int)c &gt;=48 &amp;&amp; (int)c &lt;= 57))) inputBuffer.append(1,c); } } return true; } void promptUser() { std::cout &lt;&lt; "ExpressivDemo&gt; "&lt;&lt;std::endl; } void nonblocking() { tcgetattr(0, &amp;initial_settings); new_settings = initial_settings; new_settings.c_lflag &amp;= ~ICANON; new_settings.c_lflag &amp;= ~ECHO; //new_settings.c_lflag &amp;= ~ISIG; new_settings.c_cc[VMIN] = 0; new_settings.c_cc[VTIME] = 0; tcsetattr(0, TCSANOW, &amp;new_settings); } int getch() { int r; unsigned char c=0; if((r = read(0, &amp;c, sizeof(c))) &lt; 0 ) { return r; } else { return c; } } int createSocket() { struct sockaddr_in si_other; int s, slen = sizeof(si_other); if ((s=socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP))==-1) std::cout&lt;&lt;"socket"&lt;&lt;std::endl; memset((char *) &amp;si_other, 0, sizeof(si_other)); si_other.sin_family = AF_INET; si_other.sin_port = htons(startSendPort); if (inet_aton("127.0.0.1", &amp;si_other.sin_addr)==0) { std::cout&lt;&lt;"intet_aton failed !"&lt;&lt;std::endl; //exit(1); } if(connect(s,(sockaddr*)&amp;si_other,slen)==-1) { std::cout&lt;&lt;"connect failed !"&lt;&lt;std::endl; // exit(1); } return s; } </code></pre>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload