C++ и linux-gate

Есть простейшая программа на С++ с гавнокодом:
#include <iostream>
#include <cstdlib>
#include <cstring>
using namespace std;
int main(int argc, char *argv[])
{
  char str1[256], str2[256];
  cout << "Введите 1 предложение: ";
  cin.getline(str1, 256);
  cout << "Введите 2 предложение: ";
  cin.getline(str2, 256);
  char temp[256];
  char* ptr = NULL;
  int tempnum = 0;
  for (int i = 0; str1[i] != '\0'; ++i)
    {
      temp[tempnum] = str1[i];
      ++tempnum;
      if(temp[i] == ' ' || temp[i] == 0)
        {
          temp[i] = '\0';
          ptr = strstr(str2, temp);
          if(ptr == NULL)
            cout << temp << endl;
          tempnum=0;
        }
    }
  for (int i = 0; str1[2] != '\0'; ++i)
    {
      temp[tempnum] = str2[i];
      ++tempnum;
      if(temp[i] == ' ' || temp[i] == '\0')
        {
          temp[i] = '\0';
          ptr = strstr(str1, temp);
          if(ptr == NULL)
            cout << temp << endl;
          tempnum=0;
        }
    }
  return 0;
}

При комлицяции сиего чуда ошибок нет. При выполнении ловлю сегфолт. В gdb вывод:
(gdb) bt full
#0  0x08048954 in main ()
No symbol table info available.
(gdb) info shared
From        To          Syms Read   Shared Object Library
                        No          linux-gate.so.1
0xb76c6660  0xb7736de4  Yes (*)     /usr/lib/libstdc++.so.6
0xb74ed080  0xb7621d1c  Yes (*)     /usr/lib/libc.so.6
0xb749a490  0xb74c2b68  Yes (*)     /usr/lib/libm.so.6
0xb77a28f0  0xb77bac3c  Yes (*)     /lib/ld-linux.so.2
0xb747b020  0xb7491704  Yes (*)     /usr/lib/libgcc_s.so.1
(*): Shared library is missing debugging information.

Что делать? :(
Приглядитесь к условию второго цикла. Может быть там все же str2, а не str1? Сигфолт пропадет ))
Но вопрос открыт. У меня та же ошибка при работе с gdb.
Вроде вот патч, но маяться не охото.
Трахнулся с патчем. Не спасло.
 
Зарегистрироваться или войдите чтобы оставить сообщение.