【发布时间】:2015-04-03 21:51:35
【问题描述】:
我在使用代码块在 Windows 7 上创建的 C++ 项目时遇到问题。它在那里完美编译并根据需要执行程序但是当我尝试使用 Linux Mint Cinnamon 17 使用 Virtual Box 打开它时,程序编译但在运行时抛出分段错误错误(更具体地说,“分段错误过程返回 139 0x8b”。我给了虚拟机 2 GB RAM。这是导致程序停止的代码。
string Tabla::linea(contenedor& lista, int lis_s)
{ //contenedor is: vector < vector <string> >
ostringstream os;
os<<"|";
for(int i=0; i< lista.size();i++)
{ int espacios =maximos[i]-lista[i][lis_s].size();
if(lista[i][0]=="<")
{
os<<" "<<lista[i][lis_s]<<string(espacios,' ')<<" ";
}
if(lista[i][0]==">")
{
os<<" "<<string(espacios,' ')<<lista[i][lis_s]<<" ";
}
if(lista[i][0]=="=")
{
os<<" "<<string( espacios / 2,' ')<<
lista[i][lis_s]<<string(espacios / 2,' ')<<" ";
if(espacios%2==1)
os << " ";
}
os<<"|";
}
return os.str();
}
非常感谢。
【问题讨论】:
-
调试器在这种情况下很有帮助。
-
在访问
lista[i][...]之前确保lista[i].size() > 0。 -
嗨@Havenard它是一个包含整数的向量,表示在lista的每个子向量上找到的字符串的最大大小,因为它是向量的向量。
标签: c++ linux segmentation-fault linux-mint