malloc( ( ( list.size()+1)*sizeof(char *)));
这就不对了
sizeof(char *) == 4
2.你循环中把一个指针付值给你都已经malloc出来的指针,又不对。
请这样写:
#define MaxSize 10
t = (char **)malloc((list.size()+1)*MaxSize );
for( i = 0; i < list.size(); ++i)
{
memcpy(t[ i], list[ i].toAscii().data(), MaxSize);
}