valgrind在报这个错误的时候程序未必有bug,如下例:
//test.cpp
#include <iostream>
using namespace std;
bool ptr(char *testptr)
{
int i=0;
if(i == 0){
memcpy(testptr,"Hello",5);
return true;
}
return false;
}
int main(int argc, const char *argv[])
{
char *p = new char [10];
if(ptr(p)){
printf("%s\n",p);
}
delete [] p;
return 0;
}
#include <iostream>
using namespace std;
bool ptr(char *testptr)
{
int i=0;
if(i == 0){
memcpy(testptr,"Hello",5);
return true;
}
return false;
}
int main(int argc, const char *argv[])
{
char *p = new char [10];
if(ptr(p)){
printf("%s\n",p);
}
delete [] p;
return 0;
}